home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / text / hints / all_hints next >
Text File  |  1995-08-02  |  2MB  |  38,577 lines

  1. Hints and Tips
  2. 1.1
  3. Using Electrohome Monitors
  4. 1.1
  5. Ian Nicholls of Kidderminster says that the “Electrohome” colour
  6. monitor, as sold by Opus, works OK on the Archimedes. All you have to do
  7. is make up the appropriate connector. (Or purchase one from CJE Micros
  8. or somesuch.) The pin connections for the Archimedes are given on the
  9. inside back cover.
  10. 1.1
  11. Using Modes 18 - 20
  12. 1.1
  13. Whilst on the subject of monitors, let me clear up the confusion there
  14. seems to be in the computer press about the high resolution modes and
  15. the extra video hardware which the 400 series machines are said to have.
  16. This extra hardware is NOT for driving modes 18 - 20. Even on the 300
  17. series, there is all the hardware needed to run these modes on a multi-
  18. sync monitor.
  19. 1.1
  20. The extra hardware in the 400 series is actually for even higher
  21. resolution graphics − it will go up to 1280 by 976 pixels in monochrome
  22. (160 characters by 122 lines of text) and, as with modes 18 - 20, it
  23. requires a special monitor. There is no industry standard for such
  24. monitors, and Acorn are still looking into providing a suitable monitor
  25. with their own badge on it. This extra high resolution is of course
  26. aimed at the CAD (computer aided design) market, and it is said that
  27. AutoCAD is being translated onto the Archimedes.
  28. 1.1
  29. Using a Multi-sync Monitor
  30. 1.1
  31. If you have a multi-sync monitor and want to get it working on the 300
  32. series, all you need to do is to switch the computer on whilst holding
  33. down the <R> key. This resets the CMOS RAM settings (so if, like me, you
  34. had changed them, you will have to re-configure again!) and it changes
  35. the configuration of the RGB output to run in multi-sync mode. It then
  36. allows you to access the extra screen modes that had been previously
  37. forbidden to those of us who only have standard monitors. If you should
  38. want to change the machine back again to run a standard monitor, you
  39. have to do another <R-power-up> which switches it back again (and re-
  40. sets the CMOS RAM settings AGAIN!). In other words each time you do an
  41. <R-power-up> it toggles between the two monitor settings.
  42. 1.1
  43. Using View
  44. 1.1
  45. Gerald Jones of Northampton tells us that only those of you who have
  46. gone from a Master Compact to an Archimedes will be able to get View
  47. going − for the time being, at least, because the ROM versions of VIEW
  48. will not work under the emulator. If you do have a disc version of View,
  49. Acorn tell us that the way to get it going is to copy 65ARTHUR from the
  50. MODULES directory on the Archimedes Welcome disc onto another disc and
  51. VIEW from the Compact Welcome disc and then use *BUILD !BOOT  to create
  52. a boot file which consists of:
  53. 1.1
  54.    *65ARTHUR
  55. 1.1
  56.    *GO F800
  57. 1.1
  58.    *LOAD VIEW 8000
  59. 1.1
  60.    *GO 8000
  61. 1.1
  62. and then remember to type *OPT 4,3 to set it up so that it will execute
  63. the boot file on <shift-break>. All you have to do then is to chop up
  64. your VIEW keystrip and stick it together in the Archimedes keyboard
  65. format remembering that the f0 key functions are now on the <print> key!
  66. 1.1
  67. Attaching a 5.25“ drive
  68. 1.1
  69. Have you tried to get a 5.25“ disc drive linked up to the Archimedes?
  70. Presumably, you did the obvious thing and removed the cable from the
  71. p.c.b. to the 3.5” drive and plugged in the cable from the 5.25“ drive.
  72. And you too found that it didn’t work! Well, the official answer is that
  73. it is possible to connect a 5.25” drive but that there are “different
  74. connections”. Actually, it seems that the only difference is that they
  75. have put the connector in the opposite way round!
  76. 1.1
  77. Unfortunately, you can’t just turn the connector round because of the
  78. location lug on the side of it. The solution is either to file the notch
  79. off the side of the connector so that it will go in either way round, or
  80. buy a new 34-way insulation displacement connector which you can crimp
  81. onto the end of your disc cable, the opposite way round from the
  82. existing one, or buy a disc extension cable from a supplier such as CJE
  83. Micros (£15 + £1 p&p − address in Fact-File at the back of the
  84. magazine). The advantage of doing it that way is that the extension
  85. cable is long enough to stick out at the back of the computer through
  86. the podule connection slot so that you can connect and disconnect the
  87. extra drive without taking the lid on and off.
  88. 1.1
  89. You can, if you want, put a single 5.25“ drive as drive 1 or a pair of
  90. drives as drives 1 and 2. The extra drives must, of course, have their
  91. own power supply units and you need to type *CONFIGURE FLOPPIES 2 (or 3)
  92. so that the ADFS knows how many drives there are. You will also need to
  93. get inside the 5.25” drives in order to change the link settings to
  94. configure them as drives 1 (and 2) and you should also, theoretically,
  95. remove the terminating resistors − usually a set of resistors (dual-in-
  96. line or single-in-line)  near the drive-select setting links. This is
  97. because there are already terminating resistors in the internal 3.5“
  98. drive and you should not have two sets. If you have a dual drive where
  99. they are on top of one another rather than side by side, you may find it
  100. difficult to get at the second drive in order to change the link
  101. selection. If so, the easiest solution is to make the top drive 2 and
  102. just remember that the lower drive is drive 1.
  103. 1.1
  104. One problem you may still find (which Acorn haven’t yet managed to
  105. explain) is that if you switch on the power to the disc drive before or
  106. at the same time as  the computer, the computer seems unable to start up
  107. − you just get a blank screen. All you have to do though is to make sure
  108. you switch the computer on first and then the disc drive. You will also
  109. find that the desk-top program does not recognise the third drive − even
  110. if you have typed *CONFIGURE FLOPPIES 3, it only displays two disc icons
  111. on the screen. (If anyone works out how to modify the program to
  112. recognise all three, let me know.)
  113. 1.1
  114. ADFS bugs
  115. 1.1
  116. There are one or two bugs in the ADFS, though they are apparently
  117. reasonably obscure. The only one I have found myself is that if you try
  118. to *BUILD a !BOOT file onto a disc that already has a !BOOT file and you
  119. have left the disc write-protected, when you press <escape>, the system
  120. hangs up and you have to press <ctrl-break> or reset to escape. Some of
  121. the bugs have been corrected on the 0.03 version of the ADFS that you
  122. will find in the MODULES directory on your Welcome disc. This version
  123. will have to be *RMLOAD’ed, then to check that you have got the right
  124. version installed, type *HELP MODULES which gives you the current
  125. version numbers of all modules. It should say ADFS 0.03 (17 Jun 1987)
  126. instead of ADFS 0.02 (05 Jun 1987). Incidentally, the file name on the
  127. Welcome disc is Adfs0-03, not Adfs0_03 as you might tend to expect, so
  128. if you get a file not found error, check that you have typed it
  129. correctly.
  130. 1.1
  131. Have you discoveredÉ?
  132. 1.1
  133. I’d like this to be a regular feature. It consists of the sort of things
  134. that may be obvious to some people, but perhaps that you’ve noticed from
  135. reading the User Guide (or the Programmers’ Reference Manual when it
  136. becomes available). If you find something that you thought, “Well, I
  137. didn’t realise that!’, let us know. I’ll start it off this month with
  138. things that were new to me.
  139. 1.1
  140. •   The pad character “|” which is the shifted back-slash character (the
  141. key just above the return key) can be used to “pad” out those incredibly
  142. long VDU codes that end with lots of zeros. For example, to switch off
  143. the cursor, you can use VDU23,1,0,0,0,0,0,0,0,0,0 which can admittedly
  144. be shortened to VDU23,1,0;0;0;0; can now be reduced to VDU23,1| which
  145. has the extra advantage that you don’t have to try to remember exactly
  146. how many zeros it needs to complete the command.
  147. 1.1
  148. •   Instead of saying value=value+extra, you can use the new operator
  149. “+=” and say value+=extra which is a significant saving if, like me, you
  150. tend to use long variable names; likewise with −=extra.  (Well with
  151. “604412 bytes remaining”, it may not be worth worrying about memory
  152. space, but it does save on printer ribbons!)
  153. 1.1
  154. • DANGER! • BEWARE! • WARNING!!!!!
  155. 1.1
  156. Newcomers to ADFS beware! If you have been using *WIPE * and looking
  157. through and saying “yes” or “no” to each, Don’t try it on ADFS! You will
  158. find that *WIPE * deletes ALL the un-locked files in the current
  159. directory. It’s like *DESTROY * but without even displaying a list of
  160. all the files it was about to delete and asking for confirmation. I
  161. discovered this ‘nasty’ the hard way − I lost about 10 programs at a
  162. stroke.It wasn’t too bad though as I had copied them across from DFS and
  163. only modified one or two.
  164. 1.1
  165. What you should say is *WIPE * C where the C stands for “Confirm” − then
  166. it asks you about each file in turn. − You have been warned!!!!
  167.  
  168. Hints and Tips
  169. RGB Connector
  170. Hugh Nolan, of Old Roan, Liverpool, writes, “The pinout for the RGB
  171. connector on page 18 of Archive 1.1 indicates that it follows that of an
  172. IBM PGA rather than the more common EGA standard. If anybody has a
  173. monitor supplied with a lead for use with an EGA and wishes to build a
  174. new cable they should note that the EGA pinouts are as follows:
  175. 1.2
  176. 1.2
  177.    1   Ground   6   Secondary Green/Intensity
  178. 1.2
  179.    2   Secondary Red
  180. 1.2
  181.    3   Red   7 Secondary Blue/Mono
  182. 1.2
  183.    4   Green   8   Horizontal Retrace
  184. 1.2
  185.    5   Blue   9   Vertical Retrace
  186. 1.2
  187. I am currently using such a monitor with my BBC model B and the
  188. connections are fairly straightforward except that the BBC’s connector
  189. does not have separate vertical and horizontal syncs, so I have wired
  190. the composite sync to pin 9 (Vertical Retrace) of the monitor.”
  191. 1.2
  192. Using a multi-sync monitor
  193. 1.2
  194. A much easier way to change to a multi-sync monitor is to use:
  195. 1.2
  196. *CONFIGURE MONITORTYPE 1 and
  197. 1.2
  198. *CONFIGURE MONITORTYPE 0  to switch back to the normal monitor.
  199. 1.2
  200. Epson screen-dumps
  201. 1.2
  202. No doubt you have discovered the modules called HardCopyFX, MX and RX,
  203. and you too have discovered that they don’t work! Gerrald Fitton has the
  204. answer for us. His bug-fix has been passed on to Acorn who are also
  205. circulating it. The recipe is as follows:
  206. 1.2
  207. *LOAD Modules.HardCopyFX 10000  (that’s four noughts - beware of using
  208. three!)
  209. 1.2
  210. !&104E0=&E59C1020
  211. 1.2
  212. !&104E4=&E20100FF
  213. 1.2
  214. (now replace the disc for the one onto which you want to put the hard-
  215. copy module)
  216. 1.2
  217. *SAVE HardCopyFX 10000 + 700
  218. 1.2
  219. *SETTYPE HardCopyFX &FFA
  220. 1.2
  221. *STAMP HardCopyFX
  222. 1.2
  223. To use the module, *RMLOAD HardCopyFX (or just *HardCopyFX will do) and
  224. then call it with *HardCopyFX plus various parameters − *HELP HardCopyFX
  225. will show you what all the parameters are. Has anyone been  experiment
  226. ing with it? What do all the parameters mean and what are their ranges?
  227. (Landscape, XScale, YScale, Margin and Threshold)
  228. 1.2
  229. Avoiding constant use of *MOUNT
  230. 1.2
  231. If you, like me, have a number of different discs and you can’t remember
  232. what is on which, you will probably be fed up of having to type *MOUNT
  233. each time you change the disc before you can get a catalogue. Try
  234. *CONFIGURE NODIR and <ctrl-break> and you will find that as long as you
  235. haven’t gone down to lower directories, you can just change the disc and
  236. do a *CAT (or *. works as on the BBC micro) and it will re-catalogue the
  237. disc in the drive. For more details, see James Lynn’s article about
  238. *CONFIGURE.
  239. 1.2
  240. File copying problems
  241. 1.2
  242. There are one or two problems with the *COPY command under the 0.2 and
  243. 0.3 operating systems but, not being used to using ADFS myself, I am
  244. never sure when it is a bug and when it is me being stupid. One thing
  245. you will find though is that when doing a *COPY from disc to disc using
  246. a single drive, it seems to hang up when it should be saying “Enter
  247. source disc and press the space bar” but don’t panic, it’s probably
  248. still OK and it’s just that the prompt has not been printed. Replace the
  249. disc you were expecting to put in next and press <space> and I think you
  250. will find that it carries on OK. If you haven’t discovered how to do
  251. disc to disc copying on one drive, see the “Have you discovered”
  252. section.
  253. 1.2
  254. File transfer problems
  255. 1.2
  256. If you are still having problems getting files across from other
  257. computers to the Archimedes, we have received one or two programs from
  258. subscribers. There is not enough space to print them in this issue, but
  259. if you drop us a line, we could send you a listing.
  260. 1.2
  261. Attaching a 5.25“ disc drive
  262. 1.2
  263. Acorn have told us that they would not recommend us to do this as the
  264. disc drive hardware in the computer is only designed to drive 3.5“
  265. drives with low control line loading and that if you want to attach a
  266. 5.25” drive, you should have suitable buffer circuitry added. The
  267. feedback we are getting for subscribers is that most of you are having
  268. success with this, though one person said that one drive he attached
  269. would not work whilst another one did and another person actually blew
  270. up the driver chip in the Archimedes. So, it’s up to you, but in the
  271. light of these comments from Acorn, it would clearly be a good idea to
  272. remove the pull-up resistors on the auxilliary drive.
  273. 1.2
  274. (For an alternative, check the “Hardware Available” section to see what
  275. Brainsoft have done to get round the problem.)
  276. 1.2
  277. Three floppies on the desktop
  278. 1.2
  279. In order to get three floppies on the desktop, i.e. assuming you have
  280. added a double 5.25“ disc drive, Gerrald Fitton again comes to our
  281. rescue. “In the BASIC library program called
  282. $.desktop.accessory.filehandlr you will find that lines 130 and 140
  283. accept the first and second floppies, so you will need an extra line:
  284. 1.2
  285. 145 IF floppies%>2 THEN PROCsys _addtoiconbar_left(“floppy2”,É
  286. 1.2
  287. etc as per lines 130 and 140 and you will have to make a further copy of
  288. lines 290 to 420 (which refer to floppy 0) emulating the changes made to
  289. generate lines 430 to 560 which refer to floppy 1 by inserting “2” in
  290. the appropriate places.
  291. 1.2
  292. Fortran 77
  293. 1.2
  294. Tom Fortescue warns potential purchasers of Fortran77 that (a) it needs
  295. at least 1Mbyte and is therefore unusable on the A305 (I haven’t been
  296. able to check this with Acornsoft.) and (b) it does not come with an
  297. editor, so unless you’ve got View or Wordwise or Inter-Word or somesuch,
  298. you won’t get very far with it!
  299. 1.2
  300. Stereo speakers
  301. 1.2
  302. Enoch Mayer says that he has bought, for around £25, a couple of
  303. “Realisitic” (Tandy) amplified speakers designed for use with personal
  304. stereo radio/tape players. (Model: Minimus-0.6 amplified speaker system
  305. Cat N¼ 40-1259E) Although they run off two sets of four size-C bat
  306. teries, they can easily be adapted to run off small battery eliminators.
  307. They tone in nicely with the Archimedes, but the best thing is that when
  308. no sound signal is received they automatically shut off, thus eliminat
  309. ing the “fuzz”!
  310.  
  311. •   RAM upgrades − If you want to up-grade the ram yourself, rather than
  312. trying to remove the main p.c.b. to get at the sockets where the new
  313. chips are to go, you can remove the front fascia. To do this, remove the
  314. lid, then disconnect the wires that go to the speaker and the ‘power on’
  315. LED by pulling the four-pin socket off the pins on the board. The tongue
  316. at the front of this socket is a clip that holds the socket in place, so
  317. ease this forwards and the socket should slip off easily.  Then you can
  318. remove the fascia itself by undoing the five screws, three underneath
  319. and one at each side. Care should be taken with the eject button on the
  320. disc drive as this can break off fairly easily if roughly handled. (Some
  321. say, will inevitably break off, but a bit of super-glue or the like is
  322. all you need to stick it back in place.) You will then have to remove
  323. the bridge that supports the disc drive(s). This can be done by removing
  324. one screw underneath the computer (do this first) then two screws at the
  325. side. Plug in the chips and reverse the process, again being careful of
  326. the disc eject button.
  327. 1.3
  328. •   Fitting a second drive is supposed to be a ‘dealer only’ upgrade,
  329. but as long as you know a bit about electronics and vaguely what happens
  330. inside computers, it is not too difficult to fit it yourself. However,
  331. you should watch out that the front fascia plate is not too high. If it
  332. is, it will bear on the disc and may cause an error when you try to
  333. access the disc. I discovered this when I found that the drives worked
  334. OK until I put the new two-hole fascia in place. My solution, when this
  335. happened, was “brute force and ignorance”! The metal bracket on which
  336. the drive is supported has a little bit of “give” in it − enough to
  337. raise the front of the drive by the couple of millimetres necessary to
  338. lift it away from the fascia.
  339. 1.3
  340. The other important thing to know is that to configure your second drive
  341. as drive 1 you need to move the tiny black slider switch at the side of
  342. the drive. It is a four position switch and usually comes in position 0,
  343. so one click will move it to position 1.
  344. 1.3
  345. •   Anti-Buzz Fix  − There are, apparently, two different buzzes. One is
  346. what occurs after you have pressed <escape> or <break> and the other a
  347. much more annoying buzz which not all computers seem to have. The first
  348. buzz is a software problem which is fixed in the 1.2 Arthur, so I am
  349. told, but the other requires a hardware fix which is supposed to be done
  350. by dealers as a free modification, but if you are deft with a soldering
  351. iron and are willing to risk your warranty, here’s what to doÉ
  352. 1.3
  353. The solution, according to Acorn’s technical services department isÉ
  354. 1.3
  355. “Solder a 100µF, 10 volt electrolytic capacitor across pins 7 (positive)
  356. and 4 (negative) of IC68. The capacitor should be kept as close to the
  357. p.c.b. as possible and should be secured to the board with glue or hot
  358. wax.”
  359. 1.3
  360. The bad news is that IC 68 is underneath the bar that supports the disc
  361. drive(s)! The easiest way to get at it is actually, (1) take off the
  362. lid, (2) unplug the lead that  goes to the speaker and power-on LED
  363. (beware, the socket on the ends of the cable has a lip that locks it
  364. onto the pins on the board − ease the lip forward before trying to pull
  365. the socket off), (3) take off the front fascia (one screw at each side
  366. and three under the front edge) and (4) unscrew the drive-support bridge
  367. (one screw underneath and two at the side).
  368. 1.3
  369. •   Problems with monitors − Some folk are having problems with certain
  370. monitors. If the problem is lack of contrast, use an oscilloscope to
  371. check the voltage output levels from the Archimedes. If they are less
  372. than 0.7 volts peak-to-peak you may need to change the values of the
  373. output resistors. Acorn have changed resistors R20, R41 and R59 from 68
  374. ohms to 43 ohms, so if you want to increase the output voltage, you
  375. could either change the resistors or solder a 120 ohm resistor in
  376. parallel with each.
  377. 1.3
  378. The other problem with some monitors, especially the NEC and Fujitsu
  379. multisync monitors, is of getting a greenish tinge on white areas. This
  380. comes about because Acorn put the sync signal onto the green line which
  381. is apparently what certain monitors expect. To remove this sync signal,
  382. simply remove resistor R39 − a quick snip with a good pair of side-
  383. cutters should do it, but make sure you get the right resistor!
  384. 1.3
  385. (When I tried to do these modifications, I found it wasn’t too easy to
  386. decide which resistor was which because the numbers are actually
  387. underneath the resistors. If you look at the line of resistors coming
  388. away from the video output socket you will see that they are: R1, R3,
  389. R18, R20 (68R), R35, R37, R39 (1k2), R41 (68R), R45, R50, R52, R59
  390. (68R), R60, R63 and R67.)
  391. 1.3
  392. •   Archimedes on Econet − As far as we can gather, the Econet hardware
  393. to be added to the basic 305 or 310 is just the same as the module which
  394. you would purchase for the Master or Compact − certainly, the part
  395. supplied by Acorn to one of our readers had the same part number as the
  396. Master equivalent. One problem which Econet users may find on earlier
  397. systems is that even if you only want to use the disc system, you still
  398. have to have a clock signal available, otherwise the computer hangs up!
  399. Presumably this will be corrected in the 1.2 operating system! If you
  400. are used to using !BOOT files on the network, you will need to change
  401. them all to !ARMBOOT as well as having !BOOT files for the BBC. The
  402. Archimedes will work quite well on a Level 3 server but there are no net
  403. utilities like VIEW, REMOTE, NOTIFY, ROFF etc. The only one provided is
  404. an enhanced FREE which includes RDFREE with it. Acorn have “no plans”
  405. for providing these utilities. This, for schools, is quite a problem as
  406. you cannot get to see what is going on around the net. However, software
  407. transfer around the net is very easy. (These comments were kindly
  408. provided by Mr V Smith of King Edwards School, Lytham.)
  409. 1.3
  410. •   Control key abbreviations − Lazy typists like me will like to know
  411. that if you want to type, say, MODE12 perhaps to list a program that was
  412. running in different screen mode or within a window, you can be
  413. abbreviate it to <ctrl-V><ctrl-L>. What you are doing is the equivalent
  414. of VDU22,12. On the BBC micro this was not a good idea because BASIC was
  415. unaware of the change of mode and would start to over-write screen
  416. memory with variables, but it is OK on the Archimedes because the screen
  417. memory is protected by having configured a certain amount of screen RAM.
  418. If you try it and then type PRINT MODE, it knows it is in mode 12. Other
  419. mode numbers can be worked out − mode 0 would be <cvtrl-V><ctrl-@>, 1 is
  420. A, 2-B, 3-C, 4-D, 5-E, 6-F, 7-G, 8-H, 9-I, 10-J, 11-K, 12-L, 13-M, 14-N,
  421. 15-O, 16-P, 17-Q, 18-R, 19-S, 20-T, 21-U.
  422. 1.3
  423. This can be extended to things like changing background colour, say to
  424. blue, with <ctrl-S><ctrl-@><ctrl-D><ctrl-@><ctrl-@><ctrl-@> (where
  425. <ctrl-@> is actually done with <ctrl-shift-2>) but there comes a limit
  426. where it is quicker to type in the command rather than remembering the
  427. control codes. You can even do all the plotting functions in this way −
  428. try, for example, <ctrl-Y><e><ctrl-C><ctrl-C><ctrl-C><ctrl-C>. (That’s a
  429. lower case “e”, not <ctrl-e> so switch caps lock off and just press <e>.
  430. If nothing happens, do a mode change first to a graphics mode, say MODE
  431. 12, then try it.)
  432. 1.3
  433. To change mode when in the Arthur Supervisor, you could use, say, ECHO
  434. || V || L or ECHO || S || @ || D || @ || @ || @ or you could use ECHO
  435. <19><0><4><0><0><0> but you can again just type in the <ctrl> sequences
  436. as mentioned above.
  437. 1.3
  438. •   Special effects in View − You can use *ECHO or use the control key
  439. sequences mentioned above when you are using View. Also, if you want to
  440. put the ‘format block’, ‘move block’ and ‘delete block’ commands onto
  441. function keys 10 to 12 (instead of using the <print> key) you can use:
  442. 1.3
  443. *KEY 10 || ! || L
  444. 1.3
  445. *KEY 11 || ! || \
  446. 1.3
  447. *KEY 12 || ! ,
  448. 1.3
  449. Despite what it says in the User Guide about the pageup and pagedown
  450. keys not being used, they seem to work in View and they do actually move
  451. you a page at a time up and down.
  452. 1.3
  453. •   *RMtidy − Beware that on the 0.20 Arthur, this can cause the machine
  454. to crash whenm you subsequently try to us *RMLOAD.
  455. 1.3
  456. •   There is apparently another undocumented screen mode which will be
  457. available on Arthur 1.2 − mode 21 which is 640 x 512 in 256 colours,
  458. though it will obviously only be usable on a multi-sync monitor and uses
  459. 320k of RAM! Also, on the 400 series there will be two extra high
  460. resolution monochrome modes for 64kHz monitors − mode 22 which is 160 x
  461. 122 text with 1280 x 976 graphics and mode 23 which is text only at 144
  462. x 54. These use the extra hardware that is on the 400 series boards
  463. though it looks as if there should be space for the chips on the 300
  464. boards if you are prepared to risk fitting them yourself. There are no
  465. sockets, so you would have to solder-suck all the holes first, and it’s
  466. a multi-layer board.
  467. 1.3
  468. •   Delete on keypad − If you compare the keypads of the Master and the
  469. Archimedes, you will see that where the Archimedes has a fullstop, the
  470. Master has a delete key. If you think it would be useful to have the
  471. delete function on the keypad, turn the num lock LED off and try
  472. pressing the fullstop key!
  473. 1.3
  474. •   Function key definitions − If you want to know what the current key
  475. definitions are, *SHOW K* will print them on the screen. The only slight
  476. confusion is that they appear in alphabetic order − KEY$0, KEY$1, 
  477. KEY$10,  KEY$11,  KEY$12,  KEY$13, KEY$14, KEY$15,  KEY$2,  KEY$3 etc!
  478. 1.3
  479. Function key 0, as you probably know by now, is put onto the PRINT key,
  480. but where are the other function keys − 13, 14 and 15? The only one I
  481. have found is 13 which is on the INSERT key The other thing to watch is
  482. that although there is a separate key for function key 10 (the break key
  483. on the BBC micro), when you press <break>, KEY$10 is expanded as it was
  484. on the BBC micro! (That was on 0.2. Has it changed in later versions of
  485. the OS?)
  486. 1.3
  487. •   Diary & notepad − The diary and notepad can be saved onto disc by
  488. putting the pointer on the pad or the calendar and clicking the middle
  489. button. It then asks for confirmation that you want to save it. The
  490. notepad is saved as “notepad” and the diary as “Diary87” (or whatever
  491. year it is for). To load them back in again later, you have to open up
  492. the disc and click on the required file before clicking on the diary or
  493. notepad with the middle button and selecting LOAD. When saving, the name
  494. is fixed by the desktop program, but once it has been saved, you can
  495. rename the file if you want to save more than one, though obviously this
  496. applies more to the note-pad as I know that some of you are still having
  497. to use the notepad as a word-processor! Having said all that, I have to
  498. admit that when I was trying this out, I had problems saving the
  499. calendar − I kept getting “Disc full” or “Disc in need of compaction”
  500. errors. Any offers of explanation?
  501. 1.3
  502. •   The SYSTEMDEVS module is a set of logical device drivers that can be
  503. used from Arthur. They make the device appear to the programmer as if
  504. they were a file system. In Arthur 0.20 you have to load the module from
  505. the Welcome disc, but in 0.30 onwards it should be in ROM. They include
  506. LPT:, KEYBD:, PRINTER:, VDU and RAWVDU: so a simple command to copy a
  507. file to screen would be *COPY FILE VDU: and any non-printing characters
  508. appear in the format used to program the function keys, i.e. using pad
  509. characters so that, for example, ASCII 12 comes out as || L.
  510. 1.3
  511. What is the point of these facilities? Well, you can use them to
  512. redirect the flow of data into or out of a program or relating to an
  513. Arthur command. Thus you can say *EX {>info } which sends the output
  514. from the EX command to a file called “info” and *CAT {>>info } will then
  515. ADD the catalogue information onto the end of the info file, or *CAT
  516. {printer: } would print out the catalogue. *BASIC {<data } PROG would
  517. run the BASIC program PROG and take it input information from the DATA
  518. file rather than from the keyboard. Another possible application is for
  519. debugging a program that is sending data to a disc file. Rather than
  520. stopping the program and examining the disc file periodically, you could
  521. change the line in the program where you set up the file for output and
  522. use instead X% = OPENOUT “PRINT:” then subsequent PRINT#X%’s or
  523. BPUT#X%’s would go to the printer. If the output is un-printable (or do
  524. I mean non-printing?!) characters then you could set the printer into a
  525. hex dump format which many dot matrix printers have these days. Then a
  526. final suggestion for an application would be when using network and
  527. ADFS. To avoid switching between the two, you could say X%=OPENOUT
  528. “ADFS:$.TEST”. This means that you could presumably have files open on
  529. both the network and the disk at the same time, but not having a network
  530. for my solitary Archimedes, I cannot check this!
  531. 1.3
  532. (These comments were derived from an article in “Eureka” the Auckland
  533. BBC User Groups’ Archimedes Newsletter. Many thanks to the editor, Tony
  534. Krzyzewski. Write to him if you want more details of Eureka c/o Barsons
  535. Computers, P O Box 26287, Epsom, Auckland, New Zealand.)
  536. 1.3
  537. •   ROMs that work under the emulator.
  538. 1.3
  539. Acornsoft’s Comal, Prolog and Lisp seem at first look to be OK, and one
  540. reader comments that Logotron’s Logo is OK but that the graphics are
  541. “funny” − whatever that means.
  542. 1.3
  543. Damon Hoggett reckons that to get the View series ROM’s to work, you
  544. need to *LOAD them at &10000 and then poke the following addresses to
  545. &EA (a NOP instruction) as explained last month. View B3.0: &128A2,
  546. ViewSheet B1.0: &10690, 691 and 692 and ViewStore 1.0: &12BCE, BCF and
  547. BD0 then you *SAVE filename 10000+4000 8000 8000. We made a mistake with
  548. the mention last month of Viewstore 1.1 (page 23). The poke should be
  549. ?&12BE2=&EA, not 1ABE2 and you should also poke the next two bytes,
  550. &12BE3 and E4.
  551. 1.3
  552. BBCSoft’s Monitor ROM seems to work OK with the emulator. You can
  553. apparently assemble, disassemble and single-step through 6502 machine
  554. code without problems.
  555. 1.3
  556. Some folk are saying the Inter-Chart works under the emulator, though
  557. not option 9 to import data.
  558. 1.3
  559. •   BASIC editor on 0.20 OS − If you are in BASIC and you type EDIT,
  560. BASIC issues a *ARMBE command, so if that module is not already loaded
  561. into memory, it will look in the operating system ROM and then in the
  562. current directory on the current drive for the ARMBE module. If it is
  563. not there, it will come up with “Bad command”. However, if it finds it,
  564. it will load it into memory. Then to enter the editor, you just type
  565. EDIT again. So, until you get your 1.2 OS(!) it is a good idea to copy
  566. the ARMBE module into the directory in which you keep your BASIC
  567. programs so that it is ready to use at any time.
  568. 1.3
  569. •   No room in RMA − If you are in BASIC and try to *RMLOAD a module,
  570. you may get “No room in RMA” even if the configuration is set to allow
  571. enough space for that particular module. But if you QUIT first into the
  572. Arthur supervisor you can do the RMLOAD and then go back into BASIC and
  573. OLD to get your program back. However, I think I would tend to save the
  574. program first just in case!
  575. 1.3
  576. •   BASIC V tips from Colin Dean, author of ‘Advanced BASIC’ (Tubelink’s
  577. BASIC V look-alike for the BBC & Master)
  578. 1.3
  579. In the LIST IF command, if you put a space between the IF and the
  580. <string> that follows it, you get a different effect. For example if you
  581. have two lines:
  582. 1.3
  583. 10RECTANGLE 1,2,3,4
  584. 1.3
  585. 20 RECTANGLE 5,6,7,8
  586. 1.3
  587. Then “LIST IF RECTANGLE” shows line 20 only, whereas “LIST IFRECTANGLE”
  588. shows both.
  589. 1.3
  590. A neat way to test more than one expression at once, without having to
  591. use heavily nested IF’s is to use “CASE TRUE OF”. For example,
  592. 1.3
  593. CASE TRUE OF
  594. 1.3
  595.   WHEN X=3 AND Y=4:PRINT“X=3 and Y=4”
  596. 1.3
  597.   WHEN X>7, Z=0:PRINT“X>7 OR Z=0”
  598. 1.3
  599. ENDCASE
  600. 1.3
  601. However, you should beware of mixing numerics and logicals in CASE
  602. expressions. For example,
  603. 1.3
  604. X = 6
  605. 1.3
  606. CASE X OF
  607. 1.3
  608.   WHEN TRUE : PRINT “TRUE”
  609. 1.3
  610.   WHEN FALSE : PRINT “FALSE”
  611. 1.3
  612.   OTHERWISE PRINT “SPURIOUS”
  613. 1.3
  614. ENDCASE
  615. 1.3
  616. this prints “SPURIOUS” because ‘6’ is neither true (−1) or false (0).
  617. 1.3
  618. •   Improved boot file for WWPlus − The !BOOT file on the Archimedes
  619. Wordwise Plus discs is a BASIC program which checks whether the 6502
  620. emulator is installed and if not loads it off the Welcome disc. If
  621. instead you copy 65arthur onto your Wordwise Plus discs you can use a
  622. simpler boot file which just says:
  623. 1.3
  624. QUIT
  625. 1.3
  626. 65ARTHUR
  627. 1.3
  628. WW+
  629. 1.3
  630. and then do a *OPT 4 3 so that the computer EXEC’s the boot file instead
  631. of running it. If you are using the disc version of CP-ROM, just add
  632. 1.3
  633. :SELECT SEGMENT 8
  634. 1.3
  635. :LOAD TEXT “$.CP-ROM.CPstart”
  636. 1.3
  637. *FX138,0,152
  638. 1.3
  639. to the boot file and it will start up the CP-ROM as well.
  640. 1.3
  641. •   Have you seen the whale?! − When playing Zarch, one or two folk have
  642. discovered a whale that appears in the sea (or is it a shark or a sea-
  643. monster?). You get 1000 points if you exterminate it and sometimes it
  644. “beaches” itself and becomes a much easier target. By the way, how are
  645. the scores going? I’ve just about managed to avoid being called a wet
  646. lettuce or a stuffed aubergine, but one reader, Malcolm Roberts says his
  647. son has reached 53,291.
  648. 1.3
  649. (STOP PRESS! I’ve just seen it too − very fleetingly. It was bluish with
  650. a zig-zag fin on its back!)
  651. 1.3
  652.  
  653. •   Having asked last time about function keys 14 and 15, it seems that
  654. they are only available when the cursor editing is switched off by doing
  655. a *FX4,2 after which, cursor right, down and up give definitions 13, 14
  656. and 15. (Remember that 13 is normally available on the insert key
  657. anyway.)
  658. 1.4
  659. •   Word-Perfect does not work under the PC-Emulator at present. This is
  660. due to a bug in the emulator which is being fixed − a new version will
  661. be available “shortly”.
  662. 1.4
  663. •   If you want to read the mouse when using the 6502-emulator, this can
  664. be done in BASIC IV by using ADVAL 7 and 8 to return the X and Y co-
  665. ordinates respectively. 6502 machine code programs can be modified to
  666. use OS_Byte 128 with X=7 to give the X value and X=8 to give the Y
  667. value. The co-ordinates are returned in the X and Y registers, X being
  668. the low byte and y the high byte.
  669. 1.4
  670. If you want to read the mouse buttons from BASIC IV, use INKEY(-n) where
  671. n=10, 11 and 12 for select, menu and adjust respectively and in machine
  672. code use OS_Byte 129 with X containing the -n number (&F6, &F5 and &F4)
  673. and Y containing &FF.
  674. 1.4
  675. •   Users of the Acorn colour monitors may not have realised that there
  676. is a switch inside the control panel at the front of the monitor which
  677. switches off all but the green gun. Depressing this switch makes the
  678. display slightly easier to read, especially if you are trying to use a
  679. 132 column mode.
  680. 1.4
  681. •   Setting the “*TIME” format − The output format used by *TIME can be
  682. changed via a ‘*SET Sys$DateFormat’ command. The following is a list of
  683. the valid parameters and the result they will return:
  684. 1.4
  685. %am   Display ‘am’ or ‘pm’ depending on the time.
  686. 1.4
  687. %pm   Display ‘am’ or ‘pm’ depending on the time.
  688. 1.4
  689. %ce   Current century
  690. 1.4
  691. %cs   (Centiseconds) Hundredths of a second
  692. 1.4
  693. %dn   Day number (001 = 1st January)
  694. 1.4
  695. %dy   Day of the month
  696. 1.4
  697. %mi   Minutes
  698. 1.4
  699. %mn   Month number
  700. 1.4
  701. %mo   Current month (e.g. ‘January’)
  702. 1.4
  703. %m3   Current month abbreviated to 3 characters (e.g. ‘Jan’)
  704. 1.4
  705. %se   Seconds
  706. 1.4
  707. %st   Day of the month trailer (i.e. ‘st’, ‘nd’, ‘rd’ or ‘th’)
  708. 1.4
  709. %we   Weekday (e.g. ‘Wednesday’)
  710. 1.4
  711. %w3   Weekday abbreviated to 3 characters (e.g. ‘Wed’)
  712. 1.4
  713. %wk   Week number (since start of year)
  714. 1.4
  715. %wn   Weekday number (1 = Sunday, 7 = Saturday)
  716. 1.4
  717. %yr   Current year (e.g. 87)
  718. 1.4
  719. %12   Hours on 12 hour clock
  720. 1.4
  721. %24   Hours on 24 hour clock
  722. 1.4
  723. Note that changing the format does not affect the TIME$ format as used
  724. in BASIC V.
  725. 1.4
  726. The default setting, which is: %w3,%dy %m3 %ce%yr.%24:%mi:%se, can be
  727. seen by typing *SHOW S*.
  728. 1.4
  729. If the date or the year is changed, the day of the week is automatically
  730. recalculated, so no errors occur. (See competition results on page 46.)
  731. 1.4
  732. Other characters may also be inserted into the definition of the *TIME
  733. format. For example,
  734. 1.4
  735. *SET Sys$DateFormat %we, %dy%st %mo, %ce%yr. Time: %24:%mi [%se seconds]
  736. 1.4
  737. will produce output in the form: “Monday, 07th December, 1987. Time:
  738. 12:07 [45 seconds]”.
  739. 1.4
  740. If you want to strip off the leading zero on the %dy output, use %zdy%st
  741. which will produce “7th December”. If you want, for some reason to have
  742. the character ‘%’ as part of the format, use “%%”.
  743. 1.4
  744. If you want to split the string into several zero-terminated strings,
  745. you can use ‘%0’ which will insert a zero byte into the string.
  746. 1.4
  747. New time formats in BASIC − If all you want to do is print out the value
  748. of time within a BASIC program you can simply use the star command *TIME
  749. as a line within the program. If however you want to pick up the time as
  750. an actual string, you need to use the following function:
  751. 1.4
  752. DEF FNnewtime
  753. 1.4
  754. LOCAL Workarea, Time$
  755. 1.4
  756. DIM Workarea 256
  757. 1.4
  758. ?Workarea = 3
  759. 1.4
  760. SYS “OS_Word”,14,Workarea,256
  761. 1.4
  762. SYS “OS_ConvertStandardDateAnd Time”,Workarea,Workarea,256 TO Time$
  763. 1.4
  764. =Time$
  765. 1.4
  766. Help!!! The format which the system uses to record time and date is a 40
  767. bit number (as used to store the datestamp of a file) but we have not as
  768. yet found a system routine to convert any date into this format. Has
  769. anyone found such a routine or written anything of the sort?
  770. 1.4
  771. •   Break/escape effects − To control the effects of <escape> and
  772. <break> with various combinations of <ctrl> and <shift>, you can use
  773. *FX247,n where n is a binary number whose eight bits control the various
  774. effects as follows:
  775. 1.4
  776. Bits 7 and 6 control action of <shift-ctrl-break>
  777. 1.4
  778.    7   6
  779. 1.4
  780.    0   0   −   “Normal action” (= hard reset + boot drive 0)
  781. 1.4
  782.    0   1   −   Acts like <escape>
  783. 1.4
  784.    1   0   −   Disables <shift-ctrl-break>
  785. 1.4
  786. Bits 5 and 4 control action of <ctrl-break>
  787. 1.4
  788.    5   4
  789. 1.4
  790.    0   0   −   Hard reset
  791. 1.4
  792.    0   1   −   Acts like <escape>
  793. 1.4
  794.    1   0   −   Disables <ctrl-break>
  795. 1.4
  796. Bits 3 and 2 control action of <shift-break>
  797. 1.4
  798.    0   0   −   Boots disc in drive 0
  799. 1.4
  800.    0   1   −   Acts like <escape>
  801. 1.4
  802.    1   0   −   Disables <shift-break>
  803. 1.4
  804. Bits 1 and 0 control action of <break>
  805. 1.4
  806.    0   0   −   Soft reset
  807. 1.4
  808.    0   1   −   Acts like <escape>
  809. 1.4
  810.    1   0   −   Disables <break>
  811. 1.4
  812. The default setting (on 0.20 OS) seems to be *FX247,1 so that all works
  813. “as normal” except that the break key has been turned into another
  814. escape key. Typing *FX247,0 or just *FX247 turns the break key into the
  815. old “proper” break key that BBC owners will remember, i.e. it does a
  816. soft reset, as does the reset button on the back of the keyboard.
  817. 1.4
  818. •   When you re-load a picture created by the ARM-Paint program, you
  819. sometimes find that certain of the colours are flashing. To avoid this,
  820. add a line to the PAINTING program:
  821. 1.4
  822. 18165 *FX9
  823. 1.4
  824. which should fix the problem. It actually flashes while the picture is
  825. being loaded but then the flashing stops when this line is executed.
  826. 1.4
  827. •   Long printer cables. Those of you who have been using very long
  828. printer cables on the BBC micro will find that the Archimedes’ printer
  829. output has not got sufficient drive to cope with more than about 2
  830. metres of cable. The only way to get round this would be to use a
  831. printer buffer that had a higher output drive capability.
  832. 1.4
  833. •   For an interesting sound effect (on 0.30 Arthur), type in
  834. “*Configure Sounddefault 1 7 7” followed by <ctrl-break>. This alters
  835. the bell sound as produced by VDU7. To return to normal, set Soundde
  836. fault 1 7 1.
  837. 1.4
  838. •   For those who still haven’t got a word-processor (you did fill in
  839. your registration form, didn’t you?!?) and are wanting to use the BASIC
  840. editor as a wordprocessor, type *KEY0 L.O8||ML.||B||M||A||?||A||?||C and
  841. you will find that the ‘print’ key lives up to its name.
  842. 1.4
  843. •   ROMs that work under the emulator. The second processor version of
  844. ISO Pascal (files Dpascal and Dcomp on the disc that comes with the two-
  845. ROM set) works fine under the emulator though the compilation time is a
  846. little slower than on the Beeb.
  847. 1.4
  848. Anyone who has the EDIT software from the BBC Master can transfer it to
  849. the Archimedes and it seems to work OK. There appears to be a strange
  850. message when the software is called and if the function key help screen
  851. is selected, it looks a bit peculiar. If you only want to process small
  852. amounts of text (about 30k) then use EDIT − it’s much cheaper than
  853. buying TWIN for £30.
  854. 1.4
  855. •   The default values of the parameters in the HardcopyFX module are
  856. 0,1,1,0,1 which gives, in order, landscape (i.e. sideways − to get
  857. portrait, use 1), X and Y scale factors of 1 (no limit, it seems, but
  858. you can’t use fractions), the margin which is measured in 1/72 nds of an
  859. inch with a maximum of 576 and finally the threshold (the colour number
  860. which determines whether a dot is printed or not, I presume) which can
  861. take values up to 255. There is a clever “Printer Time Out” error built
  862. into the code in case the printer is not connected.
  863. 1.4
  864. •   Switching off the desktop on Arthur 1.2.
  865. 1.4
  866. If, having changed from operating system 0.2 to 1.2, you don’t like
  867. going into the desktop every time you switch on, you can *CONFIGURE
  868. Language 4 and <ctrl-break> and you will be brought into BASIC instead.
  869. The desktop can then be called up with *DESKTOP at any time. If you
  870. decide to go back to initialising into the desktop, *CONFIGURE Language
  871. 3 should do the trick.
  872. 1.4
  873. Do keep the hints & tips coming. They are one of the most useful parts
  874. of the magazine − do you agree? We could do with more feedback about
  875. what you like and what you don’t.
  876. 1.4
  877. The trouble is that you remember that you read something but cannot
  878. remember in which issue or on which page so we’re hoping to do a full
  879. Archive index − anyone like to start it off for us? Would you like just
  880. a paper index or one on database? Let me know what you think.
  881. 1.4
  882. Watch out too for a binder for your Archive magazine. More details next
  883. month.
  884.  
  885. •   Text files for BASIC. I always used to write my BASIC programs in
  886. Wordwise and put an AUTO command as the top line then go into BASIC and
  887. NEW and then *EXEC <filename>. But IÕve just discovered (what IÕm sure
  888. you all knew already) that BASIC can do it for me. You donÕt have to put
  889. AUTO at the top you just say  *BASIC -LOAD <filename> and it will load
  890. the text version of the program and put line numbers onto it. However,
  891. as with the *EXEC technique, you cannot use long multi-statement lines
  892. or you will get the “Line too long” error.
  893. 1.05
  894. (One reader, who was using Arthur 0.2, found that text files longer than
  895. 32k got corrupted, but I tried it on my system with BASIC 1.02 and
  896. Arthur 1.2 and it seemed OK.)
  897. 1.05
  898. •   Fast screen save. This is obviously something which a number of you
  899. have been thinking about. I got a lot of response to my pleas for help.
  900. Several of you gave ways of *SAVEing the screen information from the
  901. appropriate bit of RAM and re-loading it there, though this obviously
  902. will not bring with it the palette information or the correct mode. For
  903. example:
  904. 1.05
  905. DEF PROCscreensave(filename$)
  906. 1.05
  907. LOCAL K%
  908. 1.05
  909. CASE MODE OF
  910. 1.05
  911.   WHEN 0,1,4,5,6 : K%=20
  912. 1.05
  913.   WHEN 2,3,8,9,11,18 : K%=40
  914. 1.05
  915.   WHEN 7,10,12,13,14,19 : K%=80
  916. 1.05
  917.   WHEN 16,17 : K%=132
  918. 1.05
  919.   WHEN 15,20 : K%=160
  920. 1.05
  921. ENDCASE
  922. 1.05
  923. !&80=149:!&84=-1
  924. 1.05
  925. SYS 49,&80,&88 : REM OS_ReadVduVariables
  926. 1.05
  927. OSCLI“SAVE ”+filename$+“ ”+STR$
  928. 1.05
  929. ~(!&88)+“ +”+STR$~(K%*1024)
  930. 1.05
  931. ENDPROC
  932. 1.05
  933. This takes only a second or two to save the screen. It can be reloaded
  934. by typing *LOAD filename. The program saves the whole screen, not just
  935. the graphics window. You must not have scrolled the screen prior to
  936. saving or re-loading, but a CLS before re-loading will cancel the
  937. scrolling. Also, you must be in the right mode for the screen you are
  938. about to load and you need to have the same screen colour definitions
  939. set up.
  940. 1.05
  941. What we have been promised though is a module, which we hope to publish
  942. next month, which will give you legal *commands (or SWIs) for loading
  943. and saving screen information including palette and mode and you will
  944. find that it is several times faster than the existing SCREENSAVE
  945. routines.
  946. 1.05
  947. •   Extra help on BASICÉ (OS1.2) If you type *BASIC -help<return> you
  948. get a bit more help information about BASIC. (But does anyone know what
  949. the last two bits refer to? i.e. what is an “in-core” program? Does it
  950. mean you can have more than one program in memory?)
  951. 1.05
  952. •   ADFS: If you name all your discs with *NAMEDISC, the Archimedes will
  953. remember the previously mounted discs. So, for example, if you put in a
  954. disc called TESTING and you *MOUNT it and then put in a disc called
  955. BASICPROGS and *MOUNT that, you can then see the directory of TESTING
  956. without putting the disc back in again. All you do is type *MOUNT
  957. TESTING and you can *CAT it. If you then want to look at the disc that
  958. is in the drive, you will of course have to *MOUNT again. The only
  959. problem occurs when you have backup discs because they will have the
  960. same name — this gives “Ambiguous disc name”.
  961. 1.05
  962. •   Sprite Editor. “To create a new spriteÉ” It took me ages to find out
  963. how to create a new sprite. The manual tells you to click on the
  964. “Create” box and “you are then prompted for a name and a mode”. I was
  965. expecting a prompt something like: “Please enter name:”. I saw the words
  966. “Create sprite” appear at the bottom of the screen and assumed it wanted
  967. some sort of confirmation that that was what I wanted to do, but
  968. whatever I did, the words disappeared again! In fact that is the actual
  969. prompt that the manual was referring to! All you do is type in the new
  970. name and press <return>. You would have thought they could have put in a
  971. more obvious prompt than that — or maybe just switched on the cursor to
  972. indicate that it was time to type something rather than click on the
  973. mouse buttons, but perhaps I have been spoiled by using the Apple Mac
  974. where prompts are rather more obvious and logical! Huhh!
  975. 1.05
  976. •   Reading the catalogue. An easier way to read the contents of a
  977. catalogue, rather than reading it off the screen (see Gus GemÕs article
  978. last month) is to use SYS “OS_GBPB” as followsÉ
  979. 1.05
  980. DIM C% 999
  981. 1.05
  982. !&80=&2A00
  983. 1.05
  984. SYS “OS_GBPB”,9,&80,C%,999,0,
  985. 1.05
  986. 999 TO ,,,ENTRIES
  987. 1.05
  988. This stores the filenames and sub-directories of the current directory
  989. at the address C%, in alphabetical order and each terminated by a zero
  990. byte. The number of entries is stored in the BASIC variable ENTRIES.
  991. 1.05
  992. •   Neater than OSCLIÉ SYS 6 (equivalent of FX calls) is much neater
  993. than using OSCLIs: e.g. Matthew TreagusÕ screen bank switching would
  994. look neater if, instead of using OSCLI (“FX112,”+STR$N%) he had used SYS
  995. 6,112,N%. If you donÕt like the anonymity of SYS 6, you can use SYS
  996. “OS_Byte”,112,N%. (See GeraldÕs article on page 12.)
  997. 1.05
  998. •   BeebugÕs Masterfile can be made to work on the Archimedes without
  999. using the emulator — it just needs a very few modifications — contact
  1000. DrÊÊPeter Catermole at Winchester College, Kingsgate Road, Winchester,
  1001. SO23 9PG.
  1002. 1.05
  1003. •   BBC ROMs — Continuing the saga of poking various bytes to get BBC
  1004. ROMs to work under the emulator, View B3.0 should apparently have A8A1,
  1005. 2 and 3 poked to &EA and Viewspell 1.0, &820F, 8210 and 8211 likewise.
  1006. 1.05
  1007. •   When setting the clock, the setting box sometimes covers the face of
  1008. the clock, so point at the bottom right hand corner of the clock box and
  1009. then press the middle mouse button.
  1010. 1.05
  1011. •   Plugging modules in and out. ItÕs all very well to have lots of
  1012. modules in the 1.2 ROM but, at power up, several of these modules are
  1013. installed into ram which cuts down your available memory. Exactly which
  1014. ones are installed is set by various bytes in the CMOS ram. To find out
  1015. what all the modules are and whether they are actually active, type
  1016. *ROMModules. (or just *ROM. for short.) You can “unplug” the modules by
  1017. using *UNPLUG <modulename> and it stays unplugged until you “insert” it
  1018. again with *RMREINIT <modulename>. It seems that the extra space does
  1019. not become available until you press <ctrl-break>. If you type *UNPLUG
  1020. without a module name it tells you which modules are currently
  1021. unplugged.
  1022. 1.05
  1023. •   HowÕs this for a screen dump? (sent in by Ken Yeardley) It is for
  1024. mode 0, it works on the NEC PC8023, it can be put on a function key and
  1025. it only takes 118 seconds.
  1026. 1.05
  1027. VDU2,1,27,84,1,&31,1,&36: FOR
  1028. 1.05
  1029. A%=&1FDCFB0 TO &1FDCFFF:VDU2,
  1030. 1.05
  1031. 1,27,83,1,&30,1,&35,1,&31,1,&32:
  1032. 1.05
  1033. FOR B%=A% TO A%-20400 STEP-&50:
  1034. 1.05
  1035. VDU1,?B%,1,?B%: NEXT: VDU1,10:
  1036. 1.05
  1037. NEXT: VDU3
  1038. 1.05
  1039. The reason it is so short is that the NEC printer has the MSB and LSB of
  1040. the byte that defines which pins hit the paper, the opposite way round
  1041. from Epson printers. (See page 9 for a sample screendump.
  1042. 1.05
  1043. •   Beware the microwave! One reader was having problems with data
  1044. corruption on the RS423 but it turned out to be only when his wife was
  1045. using the microwave oven four yards away, the other side of a brick
  1046. wall!
  1047. 1.05
  1048. •   HereÕs a little routine sent in by Mike Hobart which uses the
  1049. debugger module for disassembly and memory dumps. It doesnÕt quite rival
  1050. Toolkit, but itÕs a bit cheaper!
  1051. 1.05
  1052. INPUT“Disassembly or Memory dump? (D/M)”,R$
  1053. 1.05
  1054. CASE R$ OF
  1055. 1.05
  1056.   WHEN “d”,“D” : N%=FNi:REPEAT PROCx(“I”,N%,“ +10”):UNTIL FALSE
  1057. 1.05
  1058.   WHEN “m”,“M” : N%=FNi:REPEAT PROCx(“”,N%,“ +FF”):UNTIL FALSE
  1059. 1.05
  1060. ENDCASE
  1061. 1.05
  1062. END
  1063. 1.05
  1064. DEFPROCx(S$,M%,L$)
  1065. 1.05
  1066. WHILE INKEY(-99)
  1067. 1.05
  1068.   OS_CLI(“MEMORY”+S$+“ ”+
  1069. 1.05
  1070. STR$~(N%)+L$)
  1071. 1.05
  1072.  N%=N%+100
  1073. 1.05
  1074. ENDWHILE
  1075. 1.05
  1076. ENDPROC
  1077. 1.05
  1078. DEFFNi
  1079. 1.05
  1080. INPUT“From(Address &nnnnnn)”‘N$
  1081. 1.05
  1082. PRINT“Press <space> to scroll”
  1083. 1.05
  1084. IF ASCN$<>ASC“&”THEN N$=“&”+N$
  1085. 1.05
  1086. =EVAL N$
  1087. 1.05
  1088. •   Desktop on 1.2. (All the remaining H & T are based on material sent
  1089. in by Bruce Roberts.) As an alternative to double clicking on <select>
  1090. to open a file or run an application, try a single click on the adjust
  1091. button — it has the same effect.
  1092. 1.05
  1093. The quick way to open a diary (or notepad), rather than opening the
  1094. diary window first and then pressing <menu>, is to double click on the
  1095. diary icon on the disk directory — the window opens automatically.
  1096. 1.05
  1097. You can now save diaries and notepads with whatever name you like and
  1098. you can also click, or move with the cursor keys, and put text anywhere
  1099. in the window.
  1100. 1.05
  1101. The following keys can now be used on diary and notepad:
  1102. 1.05
  1103. <insert>   Insert single character
  1104. 1.05
  1105. <copy>   Delete character to the right of
  1106. 1.05
  1107.    the cursor
  1108. 1.05
  1109. <ctrl-insert>   Insert a line above the cursor
  1110. 1.05
  1111. <ctrl-copy>   Delete a line
  1112. 1.05
  1113. <shift-left/right>   Move 4 characters sideways
  1114. 1.05
  1115. <ctrl-left/right>   Move to the end of the line
  1116. 1.05
  1117. Notepads can be created from within View by saving a file (up to 100
  1118. lines, 78 characters wide) and then doing a *SETTYPE <filename> &FEE.
  1119. Existing notepads can be edited with View provided you use READ
  1120. <filename> instead of LOADing it and WRITE <filename> instead of SAVEing
  1121. it.
  1122. 1.05
  1123. •   After using the desktop, the function keys do not produce the normal
  1124. programmable strings or ASCII values. It seems that this is because
  1125. Acorn have not stuck to their own rules (see ProgrammersÕ Reference
  1126. Manual, page 488) because they do not call SWI Wimp_ CloseDown. The
  1127. “fix” published elsewhere of typing *FX225,1 is fine if you only want to
  1128. restore the strings to f0 - f9. To get f10 - f12 back, you need *FX221,1
  1129. but the simplest thing seems to be to make sure that everything is back
  1130. to its default setting by using a program, perhaps called QUIT, which
  1131. you can run from the desktop instead of clicking on the exit icon. To
  1132. set the default of all the combinations of <ctrl> and <shift> with all
  1133. the function keys, you need:
  1134. 1.05
  1135.    *FX225,1
  1136. 1.05
  1137.    *FX226,&80
  1138. 1.05
  1139.    *FX227,&90
  1140. 1.05
  1141.    *FX228,0
  1142. 1.05
  1143.    *FX221,1
  1144. 1.05
  1145.    *FX222,&D0
  1146. 1.05
  1147.    *FX223,&E0
  1148. 1.05
  1149.    *FX224,&F0
  1150. 1.05
  1151.    MODE 0
  1152. 1.05
  1153.    *BASIC
  1154. 1.05
  1155. If you donÕt put in a MODE statement, youÕll find yourself typing
  1156. invisibly! The *BASIC means you come out into BASIC but with no program
  1157. in memory.
  1158. 1.05
  1159. As an alternative, you could miss out the call to BASIC and put:
  1160. 1.05
  1161.    W%=GET
  1162. 1.05
  1163.    *MOUNT
  1164. 1.05
  1165.    *!BOOT
  1166. 1.05
  1167. The idea would be that you would click on this program, change to the
  1168. disc you want to boot up, and press a key. You may want to include a
  1169. prompt to the user to “replace disc and press space bar” or somesuch.
  1170. The use of *!BOOT means that it doesnÕt matter if the boot file should
  1171. be *EXECed or *RUN — either will be done by the *!BOOT according to the
  1172. file type.
  1173. 1.05
  1174. •   Avoiding the desktop. If you don’t want to go into the desktop every
  1175. time you switch on or press <ctrl-break>, do a *CONFIGURE LANGUAGE 4 and
  1176. press <ctrl-break>. When you want to go into the desktop, type *DESKTOP
  1177. or *DES. for short. If you change your mind, *CON. LANG. 3 will bring
  1178. you into desktop at switch on or LANG. 0 will start you in the super
  1179. visor mode.
  1180. 1.05
  1181. •   View boot file. Here is a more sophisticated boot file than the one
  1182. we gave originally:
  1183. 1.05
  1184. *ECHO<22><3>
  1185. 1.05
  1186. *| selects mode 3
  1187. 1.05
  1188. *GOS
  1189. 1.05
  1190. *65ARTHUR
  1191. 1.05
  1192. *GO F800
  1193. 1.05
  1194. *LOAD VIEW 8000
  1195. 1.05
  1196. *GO 8000
  1197. 1.05
  1198. *ECHO<19><0><16><48><48><240>
  1199. 1.05
  1200. *| sets background colour
  1201. 1.05
  1202. *ECHO<19><1><16><240><240><208>
  1203. 1.05
  1204. *| sets foreground colour
  1205. 1.05
  1206. *ECHO<19><2><24><240><128><0>
  1207. 1.05
  1208. *| sets border/line colour
  1209. 1.05
  1210. SET FI
  1211. 1.05
  1212. *| sets Format and Insert modes
  1213. 1.05
  1214. NEW
  1215. 1.05
  1216. •   Avoiding *MOUNT. To avoid typing *MOUNT each time you put a new disc
  1217. in the drive, you can set an alias with, for example, *SET ALIAS$? MOUNT
  1218. | M CAT so that when you type *?<return> it does the mount and the
  1219. catalogue all in one.
  1220. 1.05
  1221. •   Centronics GLP screendump. The *HardCopyMX nearly works because the
  1222. printer  is Epson-compatible-ish! All you need to do is issue, from
  1223. BASIC, the following codes:
  1224. 1.05
  1225. VDU2,1,27,1,65,1,8,1,27,1,50,3
  1226.  
  1227. •   (1.2 OS) If you want to look at the desktop manager programs and
  1228. perhaps modify them and run them from disk, the following information
  1229. may be of use:
  1230. 1.6
  1231. The DESKTOP has its own filing system activated by *DESKFS. If you do a
  1232. *CAT, you will get:   DeskTopMgr
  1233. 1.6
  1234. DeskTopMgr2
  1235. 1.6
  1236. &.!palette
  1237. 1.6
  1238. Icons.Desktop
  1239. 1.6
  1240. Icons.Calculator
  1241. 1.6
  1242. Icons22.Desktop
  1243. 1.6
  1244. Icons22.Calculator
  1245. 1.6
  1246. You can then LOAD the DeskTopMgr2 program and LIST it. (DeskTopMgrÊis
  1247. just the 5-line startup program that gets left in BASIC when you exit
  1248. the desktop.)
  1249. 1.6
  1250. If you change back to *ADFS, you can then save the program. To copy the
  1251. palette and/or the Icons, you have to use commands such as:
  1252. 1.6
  1253. *COPY DESKFS:I*.Desktop $.I*.Desktop
  1254. 1.6
  1255. (assuming you are in ADFS and have created a directory called Icons)
  1256. 1.6
  1257. To run the program from disk, you need the icon and palette files to be
  1258. copied across then if you fancy tackling 76k of “crunched” BASIC
  1259. program, you can try editing it!
  1260. 1.6
  1261. •   If you are using the decrement or increment (+= or −=) in a BASIC
  1262. program and you get a “Mistake” error on that line, the chances are that
  1263. you have forgotten to initialise the variable. Try typing X=X+1:PRINT X
  1264. and it will give the value 1 but if you type Y+=1 it will say “Mistake”.
  1265. What it really should say is “Unknown or missing variable”, but still,
  1266. good programmers won’t get the problem because we always remember to
  1267. initialise all our variables, don’t we? (We do?)
  1268. 1.6
  1269. •   Testing multi-sync output without a multi-sync monitor! If you are
  1270. writing software and hoping to sell enough of it to be able to afford a
  1271. multi-sync monitor(!) you have the problem of testing your software in
  1272. modes 18 to 20. If you use *Configure MonitorType 1, modes 0 to 17 are
  1273. still displayed as normal then when you select modes 18 to 20 and
  1274. generate the screen output, you can use a screendump (such as Gerald
  1275. Fitton’s minidump or *HardCopyFX) to look at what you’ve got. If you’re
  1276. worried about damaging the monitor, switch it off before changing mode.
  1277. 1.6
  1278. •   Using large printer buffers etc. If you’re using a buffer that’s
  1279. larger than 64 kbytes, it’s no use trying to use ADVAL with a negative
  1280. number (e.g. PRINT ADVAL(-4) for the printer buffer) − it only returns
  1281. the least two significant bytes. Instead, use SYS “OS_Byte”, &80, &FC TO
  1282. , X%, Y% : bytes_free%= X%+256*Y% where &FC is the − 4 value. (Actually,
  1283. instead of working out that − 4 is the equivalent of &FC you can, it
  1284. seems, be lazy and use − 4 in the SYS command. Ed.)
  1285. 1.6
  1286. •   Easy loading of modules: To enable you to load the emulator and fast
  1287. BASIC easily, you can create some library programs on your Welcome disc
  1288. (or better still, a copy of your Welcome disc!). This is what you do for
  1289. fast BASIC:
  1290. 1.6
  1291. *BUILD LIBRARY.FAST
  1292. 1.6
  1293. *FX225,1|M
  1294. 1.6
  1295. *KEY1 QUIT||M*MODULES.RAMBASIC
  1296. 1.6
  1297. ||M*KEY1||MCLS||MHELP||M
  1298. 1.6
  1299. *FX138,0,129
  1300. 1.6
  1301. <escape>
  1302. 1.6
  1303. and then change it into a BASIC program with
  1304. 1.6
  1305.  *SETTYPE LIB*.FAST &FFB<return>.
  1306. 1.6
  1307. Note that there are double pad characters before each ‘M’ in order that
  1308. when the program line is run, each double pad character is interpreted
  1309. as a single pad character for the actual key definition.
  1310. 1.6
  1311. The bits after calling the module are optional. The first is to clear
  1312. key1 again in case you press it accidentally. The second is to clear the
  1313. screen and the third is to give a help message to show that you are
  1314. actually in RAM_BASIC. (See below).
  1315. 1.6
  1316. Once this is set up, to get into fast BASIC all you do is type
  1317. *FAST<return>.
  1318. 1.6
  1319. For the 6502 emulator, use the name LIB*.6502 and don’t put the HELP
  1320. command in because that does not work on BASIC IV.
  1321. 1.6
  1322. •   Tidying up after ArcWriter! You can do a similar thing to the above
  1323. hint in order to tidy up after using ArcWriter.
  1324. 1.6
  1325. *BUILD LIBRARY.RESET
  1326. 1.6
  1327. *FX225,1|M
  1328. 1.6
  1329. *KEY1 QUIT||M*CONFIGURE FONTSIZE
  1330. 1.6
  1331. 2||M*RMREINIT FONTMANAGER||M
  1332. 1.6
  1333. *RMTIDY||M*BASIC||M
  1334. 1.6
  1335. *KEY1||MHELP||M
  1336. 1.6
  1337. *FX138,0,129
  1338. 1.6
  1339. <escape>
  1340. 1.6
  1341. Typing *RESET will do the tidy-up for you.
  1342. 1.6
  1343. •   Identifying RAMBASIC. To get RAM_ BASIC to tell you that it actually
  1344. IS the RAM version and not the ROM version, you can change a few bytes
  1345. so that it prints out ‘RAM BBC BASIC’ instead of ‘ARM BBC BASIC’ on the
  1346. startup and HELP messages. To do this, proceed as follows:
  1347. 1.6
  1348. *LOAD MO*.RAM* 20000
  1349. 1.6
  1350. ?&202B0=ASC“R”
  1351. 1.6
  1352. ?&202B1=ASC“A”
  1353. 1.6
  1354. ?&23F78=ASC“R”
  1355. 1.6
  1356. ?&23F79=ASC“A”
  1357. 1.6
  1358. *SAVE MO*.RAM_BASIC 20000 +E434
  1359. 1.6
  1360. *SETTYPE MO*.RA* &FFA
  1361. 1.6
  1362. •   Reversing the CAPS lock. If you hold down the shift key when you put
  1363. the CAPS lock light on, you will find that the shift key now has the
  1364. opposite effect, i.e. letters typed without pressing shift come up as
  1365. uppercase letters, but when you press the shift key you get lower case
  1366. letters. This can be useful if you are programming and mostly work in
  1367. upper case but with occasional use of lower case.
  1368. 1.6
  1369. •   Displaying screens in different modes. If you have a screen that has
  1370. been SCREENSAVE’d, you can display it in another mode. (e.g. Artisan
  1371. screens in 256 colour modes!) Assuming you have configured spritesize to
  1372. at least 11, proceed as follows:
  1373. 1.6
  1374. MODE 13
  1375. 1.6
  1376. *SLOAD filename  \ NOT
  1377. 1.6
  1378.  *SCREENLOAD
  1379. 1.6
  1380. *SCHOOSE screendump
  1381. 1.6
  1382. PLOT &ED,0,0
  1383. 1.6
  1384. You will note that the palette has changed and that it is a lower
  1385. resolution, however, it will still be quite decent and you will have all
  1386. those lovely colours to play around with!
  1387. 1.6
  1388. If you choose mode 15, you will get the same picture displayed in 256
  1389. colours but squeezed into only half the screen width.
  1390. 1.6
  1391. If you want to change the colours you will have to load it into the
  1392. sprite editor (SEDIT) and change the colours manually.
  1393. 1.6
  1394. •   Using the View Series. You will find that after coming from the
  1395. desktop, TAB does not work. The solution is to type *FX219,9.
  1396. 1.6
  1397. ViewProfessional works fine if you use the second processor version −
  1398. the VP file on the 5.25“ disk − however it should be *LOAD’ed at 4000
  1399. (not 8000) and called with *GO 4000. (See page 5, Archive 1.1)
  1400. 1.6
  1401. •   Diary/Notepad problems. Beware: If you are printing something from
  1402. notepad or diary, check that an active printer is on-line before
  1403. starting to print otherwise the system may hang up and the only way out
  1404. is to press <ctrl-break> − frustrating if you haven’t saved the text
  1405. first!
  1406. 1.6
  1407. •   Slower listings. I know this is obvious to ex-BBC users, but I’ve
  1408. not seen mentioned anywhere the fact that holding <ctrl> and <shift>
  1409. keys down together will stop the screen scrolling. Archimedes lists
  1410. programs so quickly that even if you use <ctrl-N> to get a paged
  1411. listing, you may well get two pages instead of one if you hesitate on
  1412. pressing the shift key, so using <ctrl> and <shift> allows you to
  1413. control the listing yourself.
  1414. 1.6
  1415. •   File transfer between wordprocessors. If you have Wordwise Plus or
  1416. View files and you want to import them into GraphicWriter, use *SETTYPE
  1417. filename &FFF to ensure that GraphicWriter sees them as text files.
  1418. (Actually it should already see Wordwise Plus files as text because of
  1419. the save address that Wordwise Plus uses − check by doing *INFO *.) Then
  1420. you can simply load the files into GraphicWriter using the file menu. To
  1421. transfer the files back to View or Wordwise, you need to save them as
  1422. ASCII files. This is done by opening the file menu then clicking on the
  1423. word “TEXT” with the ADJUST button, typing in a filename and pressing
  1424. <return>.
  1425. 1.6
  1426. (I tried to do the same sort of thing with ArcWriter but it kept
  1427. crashing each time I tried to load a file, so I gave up!)
  1428. 1.6
  1429. •   Smart ON ERROR routine. If your ON ERROR routine includes the
  1430. following, you get the usual error message and then, if you press any
  1431. key other than <escape> it will drop into the ARM BASIC editor at the
  1432. offending line. So if you do not want to go into the editor, press
  1433. <escape> instead.
  1434. 1.6
  1435. ON ERROR OFF
  1436. 1.6
  1437. PRINT REPORT$+“ at line ”;ERL
  1438. 1.6
  1439. dummy%=GET
  1440. 1.6
  1441. SYS 5,(“KEY0 EDIT ”+STR$(ERL)
  1442. 1.6
  1443. +“|M”)
  1444. 1.6
  1445. SYS 6,138,0,128
  1446. 1.6
  1447. END
  1448. 1.6
  1449. If you prefer to move into EDIT a few lines above the offending line,
  1450. use STR$(ERL−50) or whatever.
  1451. 1.6
  1452. •   Dual purpose boot files. It is quite possible to have a boot file
  1453. that will work equally well from within the desktop or as a conventional
  1454. boot file operated with <shift-break>. What you do is *BUILD the file as
  1455. usual but then *settype <filename> &FFB which gives it a link to BASIC.
  1456. If you then double-click on it in the desktop, it adds line numbers to
  1457. it and runs it as a BASIC program. However, it will only work with
  1458. <shift-break> if the machine is configured to start up in BASIC, not in
  1459. the desktop (i.e. *CON. Language 4, not 3).
  1460. 1.6
  1461. •   With the PC emulator you can get more space than Mark Sealey
  1462. reckoned in his review last month by *unplugging various of the modules.
  1463. On reader reckons to get almost 590,000 bytes free (= 576k).
  1464. 1.6
  1465. •   Disabling Modules. Archive no.5 explains how *Unplug can be used to
  1466. disable Modules, but this method needs a <ctrl-break>. An alternative is
  1467. to use *RMKill and *RMTidy from the operating system *-prompt (not from
  1468. BASIC), e.g.
  1469. 1.6
  1470. *RMKill FontManager
  1471. 1.6
  1472. *RMKill StringLib
  1473. 1.6
  1474. *RMKill Percussion
  1475. 1.6
  1476. *RMKill ARMBasicEditor
  1477. 1.6
  1478. *RMKill WindowManager
  1479. 1.6
  1480. *RMTidy
  1481. 1.6
  1482. This typically releases 96 Kbytes of memory on an A310 machine and
  1483. doesn’t need a <ctrl-break>. It is particularly useful if you’re short
  1484. of space in BASIC, Pascal or FORTRAN, etc and aren’t using fancy sound,
  1485. the WIMP environment or the BASIC editor. Each module can be reinstated
  1486. by using *RMReinit <Module name>, or all can be restarted by <ctrl-
  1487. break>.
  1488. 1.6
  1489. •   GW BASIC on the PC Emulator. There is an undocumented way to get
  1490. back into the MS-DOS operating system after using GW BASIC. Try pressing
  1491. function key f-11.
  1492. 1.6
  1493. •   PC Emulator. Version 1.09 (which existing users can get by sending
  1494. back their old disc plus £15 to Acorn) runs, amongst other things,
  1495. Ability Plus, dBase 3 Plus, Kermit, Word Perfect, LTS NewsMaster (see
  1496. separate review). (Can anyone add to this list?)
  1497. 1.6
  1498. •   RS423É yet again! If you have the 1.2 operating system and if you
  1499. have the version of the serial chip that is made by GTE (it’s the 28 pin
  1500. IC at the back left of the pcb) and if you change over from using the
  1501. CTS line at the Archimedes end to using the DSR line (i.e. link 1, 4 and
  1502. 8 and join pin 6 to the RTS line from the other machine) then Acorn have
  1503. a fix which you load in as a module. Send a blank disc to Customer
  1504. Services to get a copy. The version they sent me didn’t work the first
  1505. time I tried it with some data transfer software so I pressed <escape>
  1506. and tried again and it worked perfectly at 19,200 baud. Then I tried
  1507. again and it wouldn’t send anything, pressed <escape> and away it went!
  1508. Still, when you do get it going it sends and receives at 19,200 baud in
  1509. both directions without any data corruption. I left it running for a
  1510. couple of hours and there was no corruption at all.
  1511. 1.6
  1512. •   After the desktopÉ simpler than the list of FX commands that we gave
  1513. last month is to call SYS“Wimp_CloseDown” (which is what Acorn should
  1514. have put in their desktop program in the first place!!!) but if you
  1515. don’t fancy trying to type that every time, getting upper and lower case
  1516. exactly correct, you can create a one line BASIC program with 10
  1517. SYS“Wimp_Close Down” and save it on your disk as $.library. undesk and
  1518. then just type *undesk (or whatever abbreviation you can get away with)
  1519. and all will be restored to normal.
  1520. 1.6
  1521. •   Using the Seikosha 250X printer is a bit of a problem. When you plug
  1522. it into the Archimedes, all power is lost. This seems to be because of
  1523. the +5.0 volts on lines 18 and 36 of the printer connector − these are
  1524. earthed at the Archimedes end and so have to be disconnected somehow.
  1525. One reader, Adrian Moreton, has succeeded but it is too complicated to
  1526. explain here. If you want the information, send us an s.a.e. and we’ll
  1527. send you a photocopy of his letter and the excellent diagrams he has
  1528. drawn.
  1529. 1.6
  1530. •   ADFS wildcards. Had you gathered that ADFS will take * or #
  1531. wildcards anywhere in a filename? On the BBC, you could only put them at
  1532. the end of the filename. So, for example, if you’ve got PROGRAM1,
  1533. PROGRAM2, PROGRAM3 etc you only need to say something like LOAD “PR*2”
  1534. or even LOAD “*2” if none of the other files have numeric endings. That
  1535. makes life much easier, doesn’t it?! (Thanks to Benjamin Finn for
  1536. pointing that out. The next hint is his, too.)
  1537. 1.6
  1538. •   Errors in library procedures. If an error occurs in a PROC or FN
  1539. that is installed using LIBRARY or INSTALL, the correct error message is
  1540. given but the line number quoted is the last number in the main program.
  1541. Although we cannot get a line number pointer to the error, we can at
  1542. least find out from which procedure in the main program the library
  1543. routine was called when the error occurred.
  1544. 1.6
  1545. At the beginning of each definition of a PROC or FN you should put
  1546. something like:
  1547. 1.6
  1548.    DEF PROCdosomething
  1549. 1.6
  1550.    LOCAL ERROR
  1551. 1.6
  1552.    ON ERROR LOCAL PRINT REPORT$
  1553. 1.6
  1554.  “ in PROCdosomething”:END
  1555. 1.6
  1556.       .
  1557. 1.6
  1558.       .
  1559. 1.6
  1560.    ENDPROC
  1561. 1.6
  1562. •   Help with Econet is offered by Michael Ryan of XOB, Balkeerie,
  1563. Eassie, By Forfar, Angus, DD8 1SR. Michael says, “Here are some comments
  1564. about Archimedes on Econet in response to comments in Archive 1.3, page
  1565. 8.
  1566. 1.6
  1567. “RDFREE is part of the Econet filing system module and hence not a disc-
  1568. based utility as with the BBC version. Issued with a user identity as
  1569. parameter, it gives the total disc free space and that user’s allocated
  1570. portion of it. Issued with no parameter, it returns the user’s own free
  1571. space and the total free space.
  1572. 1.6
  1573. “Acorn are supplying a number of other utilities including SETFREE,
  1574. SETSTAT, USERS, PROT and UNPROT, though they have not yet made it clear
  1575. how they are to be distributed, so don’t hold your breath.
  1576. 1.6
  1577. “Though it is very unlikely that they will supply the more sophisticated
  1578. utilities (VIEW, REMOTE, NOTIFY etc) all is not lost. XOB already have a
  1579. wide range of utilities for the BBC/Master series and have already
  1580. implemented several of them on the Archimedes. More details from us on
  1581. 0307−84364.”
  1582.  
  1583. •   Most of the keys on the numeric pad have secondary functions if used
  1584. with the Num Lock off. In BASIC, 1 gives copy, 2 and 3 are both cursor
  1585. down, 4 is cursor left, 5 doesn’t seem to do anything, 6 is cursor
  1586. right, 7 is ‘cursor home’ and 8 and 9 and cursor up. In View, the single
  1587. cursor movements are 2, 4, 6 and 8 while 3 and 9 are page down and page
  1588. up respectively.
  1589.  
  1590. •   GETfile and PUTfile on the MS-DOS emulator are difficult to use if
  1591. you only have a single drive. However, if you configure a RAM disc with
  1592. MS-DOS you can then copy MS-DOS files onto it and then form the ADFS
  1593. files on the physical drive and vice versa to take ADFS files in to the
  1594. MS-DOS file system.
  1595. 1.7
  1596. •   Programs that work under the PC-emulator. I’ve had lots of informa
  1597. tion about MS-DOS software that does work, but has anyone found any
  1598. software that does NOT work under the PC-emulator?
  1599. 1.7
  1600. •   With version 1.09 of the PC emulator, if you do the followingÉ
  1601. 1.7
  1602. *LOAD PC.Emulate 10000
  1603. 1.7
  1604. ?&137C8=0
  1605. 1.7
  1606. *SAVE PC.Emulate2 10000
  1607. 1.7
  1608. you will find that the memory isn’t cleared when you press the reset
  1609. button.
  1610. 1.7
  1611. •   One good book to help new MS-DOS’ers (sorry!) is “Quick Reference
  1612. Guide to MS-DOS” by Van Wolverton, published by Microsoft Press,
  1613. obtainable via Watford Electronics at £3.95. (ISBN 1-55615-025-3)
  1614. 1.7
  1615. •   From various reports, it seems that CHKDSK does work properly though
  1616. it has to be used with care. It can be used to repair the File Allo
  1617. cation Table (FAT) and repair errors in directories. Files are not
  1618. necessarily stored contiguously on an MS-DOS disc, so if part of a file
  1619. is lost then CHKDSK can be used to convert lost chains to files (i.e.
  1620. write to a disc directory). Generally, CHKDSK by itself is safe. CHKDSK
  1621. *.* /V is usually safe, but CHKDSK *.* /F is dangerous if you don’t know
  1622. what you are doing!
  1623. 1.7
  1624. •   One reader says he has solved the problem of “To linefeed or not to
  1625. linefeedÉ” by adding a single pole switch in parallel with the contact
  1626. on the printer dip-switch that sets the auto-linefeed on and off,
  1627. leaving the dip-switch in the open position, of course. Don’t forget
  1628. though that most printers only look at the dip-switch settings at power-
  1629. up, though some do so when you do a software reset with 27,64.
  1630. 1.7
  1631. •   With Arc-Writer, to get it not to double space on a Panasonic
  1632. printer, use the AW_PCedit program, select the RX80D and change the
  1633. number of steps per 100 units vertically from 21600 to 600.
  1634. 1.7
  1635. •   View 3 works under the emulator if you poke locations A8A1, A8A2 and
  1636. A8A3 with &EA.
  1637. 1.7
  1638. •   Acornsoft ISO Pascal, Comal, Prolog and LISP all work under the
  1639. emulator says one reader.
  1640. 1.7
  1641. •   Share Analyser (Synergy Software) works perfectly under the 6502
  1642. emulator.
  1643. 1.7
  1644. •   Four floppies on 1.2 OS. If you try *con. floppies 4, you will find
  1645. that it tells you the number is too big, but if you use *FX162,135,4 and
  1646. do a <ctrl-break>, you will finds that *STATUS tells you that you have
  1647. four floppies.
  1648. 1.7
  1649. •   Booting other drives. In contrast with the BBC micros, you can, on
  1650. Archimedes, *MOUNT 1 and then <shift-break> to boot the disc in drive 1.
  1651. 1.7
  1652. •   WIMP Manager. Be aware that the first time Wimp_poll is called, it
  1653. clears the screen.
  1654. 1.7
  1655. •   Fitting the backplane: It is an awkward job to fit the backplane
  1656. because two plastic spacers are used into which self-tapping screws have
  1657. to be inserted. This is best done in a vice to avoid stripping screw
  1658. heads and/or sticking screwdrivers through your fingers!
  1659. 1.7
  1660. •   ‘Unknown IRQ at &00000000’. If you get this error message (and
  1661. possibly find that the machine hangs up on you) check whether your RS423
  1662. lead is properly screened, if at all. If it is not screened, it seems to
  1663. be able to pick up interference (remember the micro-wave problems
  1664. mentioned in issue 5, page 8?) and this generates spurious interrupts.
  1665. 1.7
  1666. •   More ideas on the black art of RS423 communication! Here is one
  1667. reader’s recipe for succesful RS423 transfer, though it may not work for
  1668. everyoneÉ Try using the ‘fix’ module (Archive 1.6 program disc) with
  1669. pins 1,4,8 and 9 linked together and 6 (DSR) and 7 (RTS) as the control
  1670. lines.
  1671. 1.7
  1672. •   Running more than one BASIC program. If you have a BASIC program you
  1673. want to run while you are working on another program in memory, you can
  1674. program a couple of keys with:
  1675. 1.7
  1676. *KEY 4 P%=PAGE : PAGE=&30000
  1677. 1.7
  1678. : CHAIN “testprog”|M
  1679. 1.7
  1680. *KEY 5 PAGE=P% : OLD|M
  1681. 1.7
  1682. •   System Delta Plus: If you have trouble loading newly formed
  1683. databases and get “No Room” when you know there is plenty of room, add a
  1684. .D to the filename when loading, i.e. type in the filename as, say,
  1685. “RECORDS.D”.
  1686. 1.7
  1687. •   Inter-Word: If you have come from the desktop, you will find that
  1688. the tab key does not work. This can be corrected with *FX219,9.
  1689. 1.7
  1690. If you want the £ sign, you will find it is produced by the ` key (far
  1691. top left key).
  1692. 1.7
  1693. If you want the ` signÉ tough! (The £ sign duplicates the “insert ruler”
  1694. function!)
  1695. 1.7
  1696. •   Stuck in a black hole? If you find yourself typing in black on
  1697. black, try typing MODE MODE<return>. It allows you to type again, but
  1698. maintains the mode you were in.
  1699. 1.7
  1700. •   SystemDevs module. The redirection commands, some of which we said
  1701. didn’t seem to work, are sensitive to spacing. The correct forms are as
  1702. follows where the spaces are represented by bullets (•):
  1703. 1.7
  1704. *CAT•{•>•info• }
  1705. 1.7
  1706. Spools catalogue to file “info”
  1707. 1.7
  1708. *CAT•{•>>•info• }
  1709. 1.7
  1710. Adds catalogue to file “info”
  1711. 1.7
  1712. *BASIC•{•<•data• }•PROG
  1713. 1.7
  1714. Runs “PROG” and uses information in file “data” for input.
  1715. 1.7
  1716. •   Using the Acorn ROM Podule: No links are available for the RAM
  1717. sockets, although you can configure the sockets by software for 8k, 32k
  1718. or 128k RAM chips. Using HM6264LP-15 ram in the sockets and configuring
  1719. them as 8k does not immediately work. However if you configure them as
  1720. 32k chip and apply an offset of &2000 when loading i.e.:
  1721. 1.7
  1722. *RMLoad <podule number>
  1723. 1.7
  1724. <socket> <filename> 2000
  1725. 1.7
  1726. then your data will load correctly. This is because the Chip Select (CS)
  1727. on the 8k chips is on the pin Address 13 (pin 26) on the 32k and 128k.
  1728. This causes the 8k chip to be mapped into 8-16k and 24-32k hence the
  1729. offset of 8k. The inverted CS on pin 20 is common to all three devices.
  1730. (Without configuring them as 32k, the operating system reports that the
  1731. device is not big enough for an 8k offset.)
  1732. 1.7
  1733. •   Concerning Acornsoft C and TWIN: ‘Concurrency’ (keeping text in one
  1734. window and compiling a program in the other) does not work. The compiler
  1735. (v1.5A) has a bug in it that prevents it from working. Acorn said that
  1736. it used to work OK on the pre-release version! However, compiler output
  1737. can be sent to a file called tmp.temp if the -spool option is used.
  1738. 1.7
  1739. It may be necessary to relocate TWIN in order to compile programs. My
  1740. version of TWIN loaded at &60000 but needed to be relocated to &80000 to
  1741. allow the compiler enough space. (See below.) If the compiler crashes,
  1742. try increasing the SystemSize using *configure.
  1743. 1.7
  1744. The two compiler messages, ‘Fatal I/O error’ and ‘Binary output error’,
  1745. simply mean that your disc is full!
  1746. 1.7
  1747. •   More about TWIN. Twin is an editor which seems to have one or two
  1748. hidden features; firstly it is a relocatable program, and consequently
  1749. can be loaded anywhere where RAM exists (barring overwriting OS
  1750. workspace etc.). I have created a version which I call LoTwin which
  1751. loads at &10000; this leaves space for BASIC programs only 256 bytes
  1752. fewer than are available on a BBC Master using Shadow RAM, and yet it
  1753. allows me considerably more work space than the standard Twin.
  1754. 1.7
  1755. To create a version of Twin called ‘MYTWIN’ which loads and runs other
  1756. than at the ‘normal’ address, perform the following actions:
  1757. 1.7
  1758. *DIR <dir’ry_containing _Twin>
  1759. 1.7
  1760. *LOAD TWIN <new_load_address>
  1761. 1.7
  1762. *EX
  1763. 1.7
  1764. *SAVE MYTWIN <new_load_
  1765. 1.7
  1766. address> +<size>
  1767. 1.7
  1768. <size> is obtained from the 3rd column of hex data after the ‘*EX’.
  1769. 1.7
  1770. Then, to invoke the new version, type
  1771. 1.7
  1772. *MYTWIN
  1773. 1.7
  1774. and it will run. Pressing <shift-f5> followed by <T> after entering
  1775. MYTWIN will show the load address on the top line immediately to the
  1776. left of the time.I have yet to see mentioned in print the ‘warm start’
  1777. for TWIN. If something nasty happens and your Archimedes locks up just
  1778. as you have spent a couple of hours typing in something using TWIN, and
  1779. you have no option but to press <ctrl-break>, or even <ctrl-reset>, do
  1780. not despair, simply type:
  1781. 1.7
  1782. *GO <twin_start_address> -WARM
  1783. 1.7
  1784. and you will find yourself back in TWIN exactly as you were when the
  1785. ‘nasty’ happened, barring any corruption caused by the ‘nasty’. Don’t
  1786. forget the ‘-’ preceding the “WARM’! I have found myself in this
  1787. position after a momentary power cut, and although the warm start did
  1788. not restore TWIN as a fully functional editor (due to corruption), it
  1789. restored Twin’s ability to save text, so I saved what I had done, and
  1790. was then able to reload Twin, and then reload my text.
  1791. 1.7
  1792. •   Iso Pascal: Be warned before you buy Iso Pascal, it has NO support
  1793. for Arthur − otherwise, says one reader, it is an excellent implementa
  1794. tion. Also (in common with C) it comes with a very thin manual, so a
  1795. copy of TWIN and a book about the language (see the mini-review on page
  1796. 25) will be needed for most people.
  1797. 1.7
  1798. (More information  about other languages was sent in, but this was all I
  1799. could digest with my limited knowledge of languages other than BASIC.
  1800. Would anyone be prepared to receive all the “other languages” informa
  1801. tion and knock it up into a special section each month?)
  1802. 1.7
  1803. Using the Computer Concepts ROM Podule
  1804. 1.7
  1805. How many times have you had to press <ctrl-break> and muttered under
  1806. your breath because you’ve lost your function key definitions? That need
  1807. never happen again if you have Computer Concepts’s ROM podule with some
  1808. battery-backed RAM on it. All you do is configure the system to start up
  1809. in the RFS instead of the ADFS and also configure it to auto-boot. Then
  1810. in the RFS, you put a boot file something like:
  1811. 1.7
  1812. REM > RFS:!BOOT
  1813. 1.7
  1814. *SET Run$Path ,ADFS:$.,RFS:$.%.
  1815. 1.7
  1816. *ADFS
  1817. 1.7
  1818. *FX255,8
  1819. 1.7
  1820. PRINT “Acorn ADFS”‘
  1821. 1.7
  1822. *KEY 0 These are
  1823. 1.7
  1824. *KEY 1 my favourite
  1825. 1.7
  1826. *KEY 2 key definitions
  1827. 1.7
  1828. *SET ALIAS$> Cat
  1829. 1.7
  1830. *SET ALIAS$? HELP etc
  1831. 1.7
  1832. *BASIC
  1833. 1.7
  1834. (You will notice that the Run$Path uses ‘$’ instead of ‘%’ as stated on
  1835. page 28 of the Computer Concepts manual.)
  1836. 1.7
  1837. •   To get the Inter series software to boot up with a simple call such
  1838. as *ISHEET, copy 65Arthur into the RAM area using *COPY
  1839. ADFS:Modules.65Arthur RFS:65Arthur and, providing you have set up the
  1840. Run$Path as above, *ISHEET, *IWORD and *ICHART will automatically load
  1841. the emulator and then the appropriate software.
  1842. 1.7
  1843. •   Installing Wordwise Plus. If you copy the Archimedes version of
  1844. Wordwise Plus from Computer Concepts’s disc (filename “WW+”) into the
  1845. RFS calling it, say, WWIMAGE, you can modify the BASIC program “ISHEET”
  1846. and save it as “WW+” so that, as above, you can just type *WW+ and it
  1847. will auto-load the emulator and run the software. The modifications are
  1848. to change the references to “ISIMAGE” at lines 130 and 270 into
  1849. “WWIMAGE”.
  1850. 1.7
  1851. •   If you want to modify any of the programs in a ROM, all you do is
  1852. either LOAD it, edit it and SAVE it or, if you have the modified version
  1853. on disc, just *COPY it. If you tell it to SAVE a file with a name that
  1854. exists in ROM it gives the ram version precedence over the ROM version.
  1855. 1.7
  1856. To find out whether a particular file is in ROM or RAM, use the *INFO
  1857. <filename> command. If it comes up with a “*” before the final figure of
  1858. the information, the file is in the RAM area. To get the ROM version
  1859. back, you either have to do a <ctrl-break> or type *RMREINIT RFS
  1860. <return> because *delete filename removes all trace of it so that even
  1861. the ROM version is inaccessible.
  1862. 1.7
  1863. Thanks to Adrian Look for all the following hints and tips.
  1864. 1.7
  1865. •   X-SWI’s. When using SWI’s if you put an X before the name then the
  1866. SYS call from BASIC will not generate an error. For example:
  1867. 1.7
  1868. SYS “XOS_CLI”,block
  1869. 1.7
  1870. •   Modes & drawing speed. The VIDC receives the video data down the
  1871. data bus lines of the ARM processor. While this is happening the RISC
  1872. chip cannot perform any processing. This means that the screen modes
  1873. using higher memory will be slower. Try timing a FOR-NEXT loop of
  1874. 1,000,000!  So, if speed is of the essence, it may be better to go into
  1875. mode 0, do the calculations and save them in an array and then go into
  1876. mode whatever to plot the results.
  1877. 1.7
  1878. However, there is a compensating factor. The lower memory modes use one
  1879. byte to represent several pixels, thus addressing pixels requires extra
  1880. calculation − whereas the higher memory modes use only one byte to
  1881. represent a pixel so addressing pixels is much quicker. This means that
  1882. graphics will be quicker in higher modes.
  1883. 1.7
  1884. Mode   F/N loop   Draw   Mem.   Colours
  1885. 1.7
  1886.       (secs)   (secs)   (k)
  1887. 1.7
  1888.    0   14.9   51   20   2
  1889. 1.7
  1890.    1   14.9   38   20   4
  1891. 1.7
  1892.    2   15.6   34   40   16
  1893. 1.7
  1894.    3   15.6    −   40   Text
  1895. 1.7
  1896.    4   14.9   38   20   2
  1897. 1.7
  1898.    5   14.9   32   20   4
  1899. 1.7
  1900.    6   14.9    −   20   Text
  1901. 1.7
  1902.    7   15.6    −   80   T-Text
  1903. 1.7
  1904.    8   15.6   54   40   4
  1905. 1.7
  1906.    9   15.6   40   40   16
  1907. 1.7
  1908.    10   17.1   39   80   256
  1909. 1.7
  1910.    11   15.6    −   40   Text
  1911. 1.7
  1912.    12   17.1   61   80   16
  1913. 1.7
  1914.    13   17.1   45   80   256
  1915. 1.7
  1916.    14   17.1    −   80   Text
  1917. 1.7
  1918.    15   21.3   79   160   256
  1919. 1.7
  1920.    16   19.6    −   132   Text
  1921. 1.7
  1922.    17   19.5    −   132   Text
  1923. 1.7
  1924.    18   15.4   70   40   2
  1925. 1.7
  1926.    19   16.9   77   80   4
  1927. 1.7
  1928.    20   21.0   98   160   16
  1929. 1.7
  1930. •   OS_Pretty Print. Have you ever wondered how the operating system
  1931. manages to display all its messages without any of the words getting
  1932. split at the end of a screen line, no matter what mode it is in? Well,
  1933. the answer is ‘OS_ PrettyPrint’.
  1934. 1.7
  1935. If you print all your strings using this call it will stop any words
  1936. going over the end-of-line boundary. This call recognises the following
  1937. control characters in a special way:
  1938. 1.7
  1939. − CR (CHR$(13)) causes not just a carriage return but also a newline.
  1940. 1.7
  1941. − TAB (CHR$(9)) causes a tabulation to the next multiple of eight
  1942. columns.
  1943. 1.7
  1944. − CHR$(31) is a ‘pad character’, that is, the procedure will print a
  1945. space when this code occurs but it will not break the string up at this
  1946. point.
  1947. 1.7
  1948. Example:
  1949. 1.7
  1950. A$=“Hello my name is...”
  1951. 1.7
  1952. SYS “OS_PrettyPrint”,A$
  1953. 1.7
  1954. •   The QUICK option When you use the (Q)uick option in the *COPY and
  1955. *BACKUP commands, the OS will use all available memory. This means that
  1956. if you are in high memory screen modes then you will have less memory to
  1957. use. So if you want even quicker *COPYing or *BACKUPs then try it in a
  1958. mode which uses less memory.
  1959. 1.7
  1960. •   Run$Path and File$Path. The FileSwitch uses two system variables
  1961. called Run$Path and File$Path. You can see their values by typing
  1962. either:
  1963. 1.7
  1964. *SHOW File$Path <return> and/or
  1965. 1.7
  1966. *SHOW Run$Path <return>
  1967. 1.7
  1968. You will probably get the following results:
  1969. 1.7
  1970. File$Path : type String, value :
  1971. 1.7
  1972. Run$Path : type String, value : ,%.
  1973. 1.7
  1974. These are the default settings. The values stored in the File$Path and
  1975. Run$Path variables are actually a list of directory filenames separated
  1976. by commas and terminated with dots.
  1977. 1.7
  1978. When the FileSwitch is told to read a file it will look at File$Path
  1979. variable and search for the file in each of the directories listed until
  1980. it finds a match. Similarly the FileSwitch will do the same when it is
  1981. told to execute a file, only it will use the Run$Path variable as the
  1982. list of directories. For example:
  1983. 1.7
  1984. *SET File$Path RFS:%.,,%.
  1985. 1.7
  1986. This would cause the FileSwitch to search for the file first in the RFS
  1987. filing system’s library directory, then in the current filing system’s
  1988. current directory (hence the “,,” which means don’t add anything to the
  1989. filename as entered), and finally in the current filing system’s library
  1990. directory.
  1991. 1.7
  1992. Here is a list of all the possible directory prefixes (although you can
  1993. actually specify any directory by name − wildcards may be used):
  1994. 1.7
  1995.  *    −    all
  1996. 1.7
  1997.  $    −    root
  1998. 1.7
  1999.  &    −    user
  2000. 1.7
  2001.  @    −    current
  2002. 1.7
  2003.  ^    −    parent
  2004. 1.7
  2005.  %    −    library
  2006. 1.7
  2007.  }    −    previous
  2008. 1.7
  2009. •   Flushing the Mouse. You may have noticed that the mouse has a buffer
  2010. of its own. This means that the Arc stores all the mouse movements and
  2011. clicks just as it stores the keyboard entries. How many of you play
  2012. around with the mouse when a program is ‘thinking’ or waiting for a
  2013. screen to load? This will leave a whole load of mouse positions and
  2014. clicks in the buffer, so any subsequent MOUSE X,Y,B readings will not
  2015. reflect the true position of the mouse but the positions stored in the
  2016. buffer!!! So how do you clear the buffer? To flush all the buffers,
  2017. type:
  2018. 1.7
  2019. *FX 15 <return>
  2020. 1.7
  2021. to flush just the mouse buffer, type:
  2022. 1.7
  2023. *FX 21,9 <return>
  2024. 1.7
  2025. •   Local DATA statements. (Based on an idea sent in by C.R.Fitch) In
  2026. answer to the query last month, it is possible to have DATA statements
  2027. in a program that does not rely on line numbers. What you can do is to
  2028. use the error handler to pin-point a line number just before the local
  2029. data statements. For every data set you want to access, just use the
  2030. following format:
  2031. 1.7
  2032. DEFPROCdata_set
  2033. 1.7
  2034. LOCAL ERROR
  2035. 1.7
  2036. ON ERROR LOCAL RESTORE ERL
  2037. 1.7
  2038. IF ERL=0 THEN ERROR 1,“get line
  2039. 1.7
  2040.  number“
  2041. 1.7
  2042. RESTORE ERROR                    
  2043. 1.7
  2044. DATA 1,2,3,4,5 : REM put your
  2045. 1.7
  2046.  own data here
  2047. 1.7
  2048. ENDPROC
  2049. 1.7
  2050. Then if you want to use the data set, just call the procedure, as for
  2051. example:
  2052. 1.7
  2053. PROCdata_set
  2054. 1.7
  2055. FOR i=1 TO 5
  2056. 1.7
  2057. READ data:PRINT data
  2058. 1.7
  2059. NEXT i
  2060. 1.7
  2061. The procedure leaves everything exactly as it was (except the data
  2062. pointer) so it does not affect the program at all. The only snag is that
  2063. we don’t know where the old data pointer was so we can’t continue
  2064. reading data from where we left off! Any ideas??
  2065. 1.7
  2066. (The remaining information in this section is about using the MS-DOS
  2067. emulator. More information than this was sent in, but this was all I
  2068. could digest with my limited knowledge of MS-DOS. Would anyone be
  2069. prepared to receive all such information and knock it up into a special
  2070. MS-DOS section each month?)
  2071. 1.7
  2072.  
  2073. • Colour TV output for Archimedes?  If you haven’t got a colour monitor
  2074. and want to use a TV to look at the output from the Archimedes in
  2075. colour, you can feed the signal from the video output into the ‘video
  2076. in’ on a video recorder (always assuming you’ve got one!) and connect
  2077. the ‘RF out’ from the recorder to the TV.
  2078. 1.08
  2079. • Drive lights on external 5.25“ drives.  One reader suggested that to
  2080. avoid the external drive light coming on when I accessed the interal
  2081. drive(s) I should remove all links except DS1 (I use DS2 to make it
  2082. drive2), TO, RR and MS.  I followed his advice and it seems to be OK
  2083. now.
  2084. 1.08
  2085. • 400 or 300?  If a piece of software wants to find out if it is running
  2086. in a 300 series machine or a 400 series it can read the MEMC to find the
  2087. size of page being used, thus:
  2088. 1.08
  2089.    program segment missing
  2090. 1.08
  2091. • More buzzing.  One reader noticed that the buzzing from the speaker
  2092. gets worse when you upgrade from a 305 to a 310.  Other readers have
  2093. found that the buzz gets to an intolerable level with certain software
  2094. such as ArcWriter.  In any case, this is now recognised by Acorn as a
  2095. field change, so your local dealer should be able to sort it out for
  2096. you.  If your local dealer is not within easy reach then the “capacitor
  2097. fix” mentioned in issue 3, page 7, is easy enough to do as long as you
  2098. are reasonably competent at soldering.
  2099. 1.08
  2100.  
  2101. 1.08
  2102. • Printer Acknowledge Line.  The IOC (Input Output Controller) has a
  2103. printer acknowledge line which can be read from the ARM supervisor mode. 
  2104. However, it is not advisable to ‘play around’ in this area, unless you
  2105. know what you are doing, because some locations are read only and
  2106. attempting to write to them could damage your IOC chip.  Here is an
  2107. example program that reads the printer acknowledge line.
  2108. 1.08
  2109.    program segment missing
  2110. 1.08
  2111. • *TypeFile Command.  One reader tried to define an alias which types
  2112. out a file on the printer and then switches the printer off again, but
  2113. he found that it was easier said than done.  I set Adrian Look onto it
  2114. and he has managed to find a way of doing it (albeit rather tortuous!):
  2115. 1.08
  2116.    program segment missing
  2117. 1.08
  2118. then to print out the file, you do a *TypeFile<filename>.  The <60> and
  2119. <62> are the ASCII codes for “<‘ and “>”.
  2120. 1.08
  2121. It sounds a bit long-winded, but what you are trying to do is generate
  2122. ASCII codes <2> and <3> to switch the printer on and off again.  When
  2123. you do a *SHOW, it gives the definition of TypeFile as ECHO |<2>|M TYPE
  2124. %0|M ECHO |<3>|M.
  2125. 1.08
  2126. • “What’s the time, Arthur??”  − If you wanted to change the prompt
  2127. which Arthur gives, you could try, for example:
  2128. 1.08
  2129.    *Set CLI$PROMPT >>>
  2130. 1.08
  2131. and you would get a question mark instead of the star prompt.  Then, if
  2132. you want Arthur to tell you time at each prompt, use:
  2133. 1.08
  2134.    *SETMACRO CLI$PROMPT <SYS$TIME>*
  2135. 1.08
  2136. This prints out the time and then prints the star prompt.  The reason
  2137. you use SETMACRO rather than just SET is that it needs to be a variable
  2138. which is up-dated each time the command is used.  If you don’t like the
  2139. seconds figure to be included, try:
  2140. 1.08
  2141.    <SYS$TIME><127><127><127>*
  2142. 1.08
  2143. This prints out the time but then generates three delete characters
  2144. which remove the seconds figures and the colon.
  2145.  
  2146. •   View B3.0. Following on from the hint about View B3.0, John Phelan
  2147. writes th•   “More articles about the basics, please”, said a number of
  2148. folk at the Micro User Show. WeÕve had something on using ADFS and are
  2149. starting assembler for beginners but can anyone say specifically what
  2150. they want information on and can anyone offer to write any “basic”
  2151. articles, please? In particularÉ
  2152. 1.09
  2153. •   Article on ARMBE. We really do need someone to write a very
  2154. practical guide to using the ARM BASIC Editor. For example, IÕve only
  2155. just realised that <insert> toggles between insert and over-write mode
  2156. and so you donÕt have to go through the preferences menu. I suspect a
  2157. lot of people are not using ARMBE simply because they are familiar with
  2158. BASICÕs own line editor and havenÕt got time to learn ARMBE even though
  2159. it would save them time in the long run. Please write to us if you would
  2160. like to have a go at this. Thanks.
  2161. 1.09
  2162. •   BASIC V utility library. If you have worked out some neat utilities
  2163. like the one in Hints & Tips about aligning decimal points, why not send
  2164. them in to us. Clifford Hoggarth has offered to edit the section, so
  2165. either send your contributions to us or direct to him at 20 Pinfold
  2166. Drive, Eccleston Mere, St Helens, WA10 5BT.
  2167. 1.09
  2168. •   Education articles. IÕm getting requests for articles relevant to
  2169. education, but no-one is offering such articles. Can anyone help?!
  2170. 1.09
  2171. •   Hard Disc users. One reader, who has a 440 on order, wants to know
  2172. if there are any doÕs and donÕtÕs with a hard disc. Are there any hard-
  2173. disc users who want to comment?
  2174. 1.09
  2175. •   View B3.0. Following on from the hint about View B3.0, John Phelan
  2176. writes that there is still a problem with the pound key. On the
  2177. Archimedes, this key returns ASCII 163. Is this redefinable?
  2178. 1.09
  2179. •   Calculating ¹ and e. Brian Cowan asks if anyone knows the way that
  2180. pi and/or e may be calculated digit by digit on a computer. Presum-ably
  2181. they must be all integer algorithms(?)
  2182. 1.09
  2183. •   Taxan KP-810 on ArcWriter. Has anyone worked out how to get a
  2184. printer driver working for this combination? Drop a line to E. Clinks
  2185. cales, 68 Wyvis Drive, Nairn, IV12 4TP.
  2186. 1.09
  2187. •   Video-titling. Is there any software, says M Davies of Cardigan, for
  2188. video-titling? Wild Vision do the hardware for Genlock and Video
  2189. Overlay, but where is the software?
  2190. 1.09
  2191. Also, he asks, is there any software, preferably ROM based, to give NLQ
  2192. print on his Epson RX80 and also desktop publishing?
  2193. 1.09
  2194. Help Answers
  2195. 1.09
  2196. •   Label printer for cassette tapesÉ Try the June issue of Micro User,
  2197. page 39.
  2198. 1.09
  2199.  
  2200. 1.09
  2201. •   View B3.0. In order to get View B3.0 working properly under the 6502
  2202. emulator, as well as poking the three bytes at &A8A1 to &EA you have to
  2203. poke &80C2 — 4 to &EA otherwise, the emulator tries to run it as a
  2204. second processor ROM image — without any success. With this patch, the
  2205. address space from &B328 to &BFFF is effectively free for patching.
  2206. Perhaps some enterprising programmer could use this space for extra
  2207. routines — e.g. a resident printer-driver.
  2208. 1.09
  2209. •   Special characters. If you want to generate special characters on-
  2210. screen, try pressing <ctrl-shift-alt> and then one of the ordinary keys
  2211. and you will find that you can get all sorts of alternative characters
  2212. such as © and ¨ and the half, quarter and three-quarter signs (which I
  2213. havenÕt even got on the Apple Mac!). What is more, if you are using Arc-
  2214. Writer, it will actually print some of the symbols, such as the
  2215. fractions, on the printer!
  2216. 1.09
  2217. •   PSU for external 5.25“ drives. If you have an external 5.25” disc
  2218. drive that does not have its own power supply, you can take the power
  2219. from the power supply for the hard disc but you will need a special
  2220. cable and connector. Those who have bought interfaces from Dudley Micro
  2221. Supplies might be able to get help from them. (Or try the ArcDFS
  2222. interface mentioned in Hardware & Software Available section.)
  2223. 1.09
  2224. •   Aligning decimal points. If you are trying to print out various
  2225. figures and want the decimal points to line up above one another, you
  2226. can use the “fixed format”. (See the explanation of the @% variable
  2227. under the section in the User Guide about the PRINT command.) However,
  2228. the fixed format prints out trailing zeros, e.g. it prints 234.0000
  2229. instead of 234.
  2230. 1.09
  2231. The bad news: One reader wanted to avoid this and so was trying to write
  2232. a BASIC routine to do the aligning and discovered some nasties (presum
  2233. ably due to rounding errors) that gave the value of LOG100 as 2 but
  2234. INT(LOG100) as 1! Also he found that LEN(STR$3.3) was given as 3, but
  2235. LEN(STR$4.3) was given as 11!
  2236. 1.09
  2237. The good news: You can do a STR$, use INSTR to find the position of the
  2238. decimal point and then use PRINT TAB( to position it correctly as in the
  2239. following example. (Thanks, APL!)
  2240. 1.09
  2241.  10 REM >$.AlignDP
  2242. 1.09
  2243.  20
  2244. 1.09
  2245.  30 REM ***************************
  2246. 1.09
  2247.  40 REM * Aligning your decimals  *
  2248. 1.09
  2249.  50 REM *  by Adrian Philip Look  *
  2250. 1.09
  2251.  60 REM *    28th April 1988      *
  2252. 1.09
  2253.  70 REM ***************************
  2254. 1.09
  2255.  80
  2256. 1.09
  2257.  90 REPEAT
  2258. 1.09
  2259. 100   random=RND(10000)-RND(1)*(RND
  2260. 1.09
  2261. (1)<.7)
  2262. 1.09
  2263. 110   PROCalign(20,random)
  2264. 1.09
  2265. 120 UNTIL FALSE
  2266. 1.09
  2267. 130 END
  2268. 1.09
  2269. 140
  2270. 1.09
  2271. 150 DEFPROCalign(x,number)
  2272. 1.09
  2273. :REM x = position of DP
  2274. 1.09
  2275. 160 number$=STR$(number)
  2276. 1.09
  2277. 170 dot=INSTR(number$,“.”)
  2278. 1.09
  2279. 180 IF dot=0 dot=LEN(number$)+1
  2280. 1.09
  2281. :REM i.e. no DP
  2282. 1.09
  2283. 190 IF dot=1 dot=0:REM leads with DP
  2284. 1.09
  2285. 200 PRINT TAB(x-dot);number
  2286. 1.09
  2287. :REM beware of (x-dot)<0
  2288. 1.09
  2289. 210 ENDPROC
  2290. 1.09
  2291. STOP PRESS. The original enquirer about this, Peter Trigg, has just come
  2292. back with:
  2293. 1.09
  2294. DEFPROCalign(x%,number)
  2295. 1.09
  2296. :REM x% = position of DP
  2297. 1.09
  2298. LOCAL length%
  2299. 1.09
  2300. length%=LEN(STR$(INT(number)))
  2301. 1.09
  2302. PRINT TAB(x%-length%);number
  2303. 1.09
  2304. ENDPROC
  2305. 1.09
  2306. This is somewhat neater and it seems to work OK. (This just emphasises
  2307. the need for sharing ideas — which is why we are setting up our “BASIC
  2308. utilities” section — see Help!!! section.)
  2309. 1.09
  2310. •   Music Editor. If you have a number of tunes that were prepared using
  2311. the Music Editor on the 0.2 or 0.3 Welcome discs. You will probably find
  2312. that all the voices are wrong — usually that the main tune was being
  2313. played on the percussion! The reason is that the Music Editor refers to
  2314. the voices by number only, so if the modules are in a different order,
  2315. the voices are likewise in a different order. It is however possible to
  2316. change the order of the modules by *RMKILLing the one which is higher in
  2317. the *ROMMODULES list then doing a *RMTIDY and then *RMREINITing the
  2318. module which you had just killed.
  2319. 1.09
  2320. •   Beware &36D!  Some BBC software (Apollo Mission for example) pokes
  2321. !877=0 (or !&36D=0). If you transfer this to the Archimedes you will
  2322. find that the system locks up and neither <ctrl-break> nor <reset> has
  2323. any effect. Even switching off is ineffective. The only way out is an
  2324. <R>-power-up. (Do it twice to restore the correct monitor-type setting.)
  2325. 1.09
  2326. •   File copying on a single drive. Are you having difficulty copying
  2327. files from one disk to another using just one disk drive? Is it that
  2328. when using the *COPY command with the Prompt option, the system prompts
  2329. for insertion of the destination disk but never recognises it? If so, 
  2330. issue the command *NODIR first. The system will then read the disk
  2331. directory every time it attempts to access a disk rather than storing
  2332. the directory in memory so that disks no longer need *MOUNTing. It is
  2333. possible to make the change permanent by doing *Configure NODIR.
  2334. 1.09
  2335. •   Boot files that work from desktop or with <shift-break> — set *OPT
  2336. 4,2 (Run) and create a BASIC program called !BOOT. You can then <shift-
  2337. break> if configured as language 3 or 4 (desktop or BASIC) or double
  2338. click the !boot icon from desktop.
  2339. 1.09
  2340. If necessary the !BOOT file can contain a line such as: 10*EXEC !BOOT1
  2341. 1.09
  2342. !BOOT1 contains tasks such as loading modules that need to be done from
  2343. supervisor mode.
  2344. 1.09
  2345. •   To run Master software, use *Alphabet Master and *Keyboard Master.
  2346. 1.09
  2347. •   *TypeFile again. After the ideas given last month, I knew there
  2348. should be an easier wayÉ Clifford Hoggarth has come up with:
  2349. 1.09
  2350. *Alias$TypeFile Echo ||B|M Type %0|M Echo ||C|M
  2351. 1.09
  2352. The point is that on first interpretation, || is turned into | so that
  2353. it become Echo |B which gives the ASCII 2 (ctrl-B) to turn on the
  2354. printer and Echo |C to do the reverse.
  2355. 1.09
  2356. •   System Delta Plus — The section in the manual on printer control
  2357. codes is not very clear. The following points may make it clearer: (1)
  2358. Clicking on <menu> on the printer control icon brings up a sub-menu
  2359. giving options for Bold, Compressed or Reset. (2) To select multiple
  2360. escape sequences, click <select> on the printer control icon, select the
  2361. Escape icon and enter the first code in the sequence, then press
  2362. <return>, enter the second code and again press <return>. Repeat this if
  2363. necessary and click on the OK icon when you have finished. E.g. to get
  2364. NLQ on an Epson , you want ESC120,1. So use: <select> Escape icon, type
  2365. 120, press <return>, type 1, press <return>, <select> OK icon.
  2366. 1.09
  2367. One limitation of the System Delta Plus package, as it stands, is that
  2368. you can only create four numeric total fields when producing a “List”.
  2369. The solution, according to Minerva Systems will be to purchase their
  2370. “Reporter” software — when it becomes available!
  2371. 1.09
  2372. •   Taxan Kaga printer (or the Canon equiv-alent) — there is a fairly
  2373. simple way of being able to switch the auto-line feed on and off, to
  2374. avoid problems with software that may or may not require the printer to
  2375. auto-line feed.
  2376. 1.09
  2377. All you do is to place a switch between two pins of the printer
  2378. connector. The pins to connect are pin 14 (auto-line feed) and any GND
  2379. line. When they are connected an auto-line is not performed.
  2380. 1.09
  2381. •   Ambiguous *-commands. If you have two modules loaded into the
  2382. Archimedes that use the same *-command name, you can call the command
  2383. required by: *<module name>: <command> <....> So, for example, if you
  2384. had two modules, ÔUtilityÕ and ÔToolkitÕ both of which have a CATALL
  2385. command, you can use either *Utility:CATALL or *Toolkit:CATALL to
  2386. differentiate between them.
  2387. 1.09
  2388.  
  2389. •   BASIC Editor. If you type “EDIT.” instead of just “EDIT”, it gets
  2390. you back into the editor at the same place you left it. This can be very
  2391. useful when editing long programs. It even seems to work if you load and
  2392. save other programs in the interim as long as you get the original
  2393. program back into memory. Also, you can say EDIT Fred and it will take
  2394. you to the first occurrence of the word “Fred” in the file. So, with
  2395. judicious use of REM statements, you can jump into the program at just
  2396. the right place every time. If you want to find DEFPROCfred, EDIT fred
  2397. will probably bring you to PROCfred rather than the definition itself,
  2398. but REM !FRED above the top of the procedure would allow you to type
  2399. EDIT !FRED (note, all uppercase, which is easier to type) to drop you
  2400. straight to the desired place in the program.
  2401. 1.10
  2402. •   Artisan — fast load and save. If you have typed in the Fastload/Save
  2403. module from the March issue of Archive, *COPY FastRm onto the Artisan
  2404. disk and then LOAD “ART3”, list line 270 and add *RMLOAD FastRm|M and
  2405. then re-save it. Now LOAD “ART5” change line 2540 to OSCLI“FastLoad ”+f$
  2406. and line 2620 to OSCLI”FastSave “+f$. Then re-save it. You now have a
  2407. new and improved disc facility for Artisan.
  2408. 1.10
  2409. •   305, 310, 410 or 440? Following on from the hint in the May issue
  2410. (page 7) itÕs all very well to know what the page size is, 8k or 32k,
  2411. but to differentiate between a 305 and a 310 or between a 410 and a 440,
  2412. you need to know how much memory is available. One way of doing this is
  2413. to set up a local error trap and do a *Configure Spritesize 128. If the
  2414. machine has 1 Mbyte or less it will generate a “Configure parameter too
  2415. big” error. If it still generates an error when you use *Configure
  2416. Spritesize 64 then the software knows it is running in a 305. We have
  2417. not had chance to check this on a 305 or a 410, so please will someone
  2418. let us know if it does not work.
  2419. 1.10
  2420. •   System DeltaPlus. If you want to use two drives, issue the following
  2421. two commands from the card index:
  2422. 1.10
  2423. *dir :1
  2424. 1.10
  2425. *set Delta$WPPrefix :0.$
  2426. 1.10
  2427. Then donÕt specify the drive number in the data file name.
  2428. 1.10
  2429. •   View 3 & Viewstore 1.1. Various folk are still having problems with
  2430. these. If so, try the following as suggested by Sean Kelly — thanks.
  2431. 1.10
  2432. Viewstore 1.1. Locations &ABE2, &ABE3 and &ABE4 should all be set to the
  2433. value &EA.
  2434. 1.10
  2435. View 3. Set locations &A8D6, &A8D7 and &A8D8 to the value &EA. Also,
  2436. there are four places where you get LDA#&82, JSR Osbyte (i.e. &A9, &82,
  2437. &20, &F4, &FF). This is used to check for the second processor on the
  2438. BBC. So to fool it, you have to change each of these to: LDX#&FF,
  2439. LDY#&FF, NOP. You can either do this by poking &A2, &FF, &A0, &FF, &EA
  2440. into each of the sets of locations: &8834 to &8838, &88D8 to &88DC,
  2441. &895C to &8960 and &AF8D to &AF91. (I checked these locations against
  2442. the B3.0 version in the Master 128Õs and it bore no resemblance to it.
  2443. Apparently it refers to the A3.0 version. Ed.)
  2444. 1.10
  2445. •   Improved sound. If you have the colour monitor that comes with the
  2446. Archimedes, you can use the Audio Input at the back of the monitor (a
  2447. phono socket) to take a signal from the Headphones output (3.5 mm stereo
  2448. jack) from the Archimedes. Just use one of the channels or combine them
  2449. with 100R resistors. (If youÕre not quite sure how to do this, weÕll try
  2450. to give more details next month.) This give a much better sound and
  2451. provides you with a volume control.
  2452. 1.10
  2453. Next two hints are from Peter KigginsÉ
  2454. 1.10
  2455. •   When using a SWI from BASIC which either takes or returns a string,
  2456. it is not necessary to use pointers to strings.  The SYS command knows
  2457. that a pointer has been returned by the SWI and copies the relevant text
  2458. into the string.  For example, instead of
  2459. 1.10
  2460. $TxtPtr%=Number$
  2461. 1.10
  2462. SYS“OS_ReadUnsigned”,FromBase%,TextPtr% TO ,,Decimal%
  2463. 1.10
  2464. you can use the more readable and easier
  2465. 1.10
  2466. SYS“OS_ReadUnsigned”,FromBase%,Number$ TO ,,Decimal%
  2467. 1.10
  2468. And to read the command line which started the program, all that’s
  2469. required is
  2470. 1.10
  2471. SYS “OS_GetEnv” TO Command_line$
  2472. 1.10
  2473. •   BASIC commands TWIN and TWINO can be used without Acorn’s (editor)
  2474. TWIN.  How?  When TWIN is executed, BASIC first converts the current
  2475. program from internal tokenised format to plain text format; then it
  2476. calls TWIN with the location of the text as a command line string.  So
  2477. all that is required is a program called TWIN which reads the command
  2478. line and saves the relevant chunk of memory:-
  2479. 1.10
  2480.  10 REM >twin
  2481. 1.10
  2482.  20 REM*** fails with very short pieces of text ***
  2483. 1.10
  2484.  30 SYS “OS_GetEnv” TO command_line$
  2485. 1.10
  2486.  40 posat%=INSTR(command_line$,“@”)
  2487. 1.10
  2488.  50 poscomma%=INSTR(command_line$,“,”,posat%)
  2489. 1.10
  2490.  60 possemic%=INSTR(command_line$,“;”,poscomma%)
  2491. 1.10
  2492.  70 start$=“&”+MID$(command_line$,posat%+1,poscomma%-(posat%+1))
  2493. 1.10
  2494.  80 finish$=“&”+MID$(command_line$,poscomma%+1,possemic%-(poscomma%+1))
  2495. 1.10
  2496.  90 INPUT“Enter file name: ” file$
  2497. 1.10
  2498. 100 OSCLI(“save ”+file$+“ ”+start$+“ ”+finish$)
  2499. 1.10
  2500. 110 OSCLI(“settype ”+file$+“ &FFF”)
  2501. 1.10
  2502. The point of all this is that the BASIC Editor can now be used to
  2503. produce text files — for wordprocessing, compiling, etc.
  2504. 1.10
  2505. •   Auto-Booting — some of the commercial auto-boot programs don’t take
  2506. into account the filing system! This can be very annoying if you have a
  2507. ROM podule and your system is set to start up in the RFS. The answer is
  2508. (i) the software developers should produce proper auto-boot programs; or
  2509. (ii) if you already have bought a program — put *CON.FILE.ADFS in auto-
  2510. boot program!
  2511. 1.10
  2512. Hard Disc Auto-Booting — some readers are lucky enough to have hard
  2513. discs. However, life with a hard disc is not all a bed of roses! Having
  2514. copied your application programs to the hard disc, you run into problems
  2515. with the auto-booting routines. Here is a one of many possible solu
  2516. tions. Indeed this program could be used for those of us with floppies,
  2517. who have more than one application on a disc.
  2518. 1.10
  2519.  10 REM >$.!BOOT
  2520. 1.10
  2521.  20 REM **************************
  2522. 1.10
  2523.  30 REM * Multiple  Auto-Booting *
  2524. 1.10
  2525.  40 REM * written by Adrian Look *
  2526. 1.10
  2527.  50 REM *     22nd June 1988     *
  2528. 1.10
  2529.  60 REM **************************
  2530. 1.10
  2531.  70
  2532. 1.10
  2533.  80 SYS “OS_Byte”,161,16 TO ,,misc_flags
  2534. 1.10
  2535.  90 auto_boot=(misc_flags AND %10000)
  2536. 1.10
  2537. 100 file$=“boot”
  2538. 1.10
  2539. 110 file=OPENIN(file$):CLOSE #file
  2540. 1.10
  2541. 120 IF file=0 THEN PROCmenu
  2542. 1.10
  2543. 130 file=OPENIN(file$)
  2544. 1.10
  2545. 140 INPUT #file,boot$
  2546. 1.10
  2547. 150 CLOSE #file
  2548. 1.10
  2549. 160 IF auto_boot THEN OSCLI(“REMOVE ”+file$)
  2550. 1.10
  2551. 170 OSCLI(“RUN ”+file$)
  2552. 1.10
  2553. 180 END
  2554. 1.10
  2555. 190
  2556. 1.10
  2557. 200 DEFPROCmenu
  2558. 1.10
  2559. 210 REM **** your own code ****
  2560. 1.10
  2561. 220 REM
  2562. 1.10
  2563. 230 REM should exit with file$
  2564. 1.10
  2565. 240 REM containing the filename
  2566. 1.10
  2567. 250 REM of the program to be run.
  2568. 1.10
  2569. 260 REM
  2570. 1.10
  2571. 270 REM e.g. PRINT #file,filename$
  2572. 1.10
  2573. 280 ENDPROC
  2574. 1.10
  2575. The program checks whether a file (file$) is on the disk. If it is, then
  2576. the program reads the filename contained in file$ and runs it! Other
  2577. wise, the program should create file$ — as indicated.
  2578. 1.10
  2579. This method also allows you to write library programs which will: create
  2580. file$ and then run the boot program. Thus by running these library files
  2581. you can also initiate your application programs — without the need for a
  2582. menu!
  2583. 1.10
  2584. •   Quazer Fix. If you are using Quasar 1.40, here is a cheat, (for
  2585. those who like such things!) which allows you to keep going a bit
  2586. longer. Firstly, *LOAD QuazCode 9000 and then rename Quazcode as, say,
  2587. OldCode. Now if you want to set the number of lives, you need to change
  2588. location &3D058. It should currently contain 2, so to change the number
  2589. of lives to, say 10, put ?&3D058=10. Now if you want to avoid being
  2590. killed when you collide, change the contents of location &3D90B from &E2
  2591. to &F2 by puting ?&3D90B=&F2. Finally, *SAVE QuazCode 9000 +36520.
  2592. 1.10
  2593. •Passwords if you want them. Quazer Passwords: 2 Lizards, 3 Spiders, 4
  2594. Pedantic, 5 Analysis, 6 Larkin, 7 Company, 8 Manual,9 Trading
  2595. 1.10
  2596. Hoverbod passwords: 2 Minervas, 3 SirBarry, 4 ZotyBlob, 5 Flumpies, 6
  2597. Squidgee, 7 Wobblies, 8 Posskett
  2598. 1.10
  2599.  
  2600. 1.10
  2601. The following Hints & Tips were sent in by Mike Harrison (of Watford
  2602. Digitiser fame). HeÕs also sent us various other bits of information
  2603. which appear elsewhere in this issue and the next issue. Many thanks
  2604. Mike.
  2605. 1.10
  2606. Writing modules
  2607. 1.10
  2608. (Ref. issue 5, page 45) SWIs in modules must always use the ‘X’ version
  2609. of the SWI and, where appropriate, check for an error and exit,
  2610. preserving the value of r0 returned by the SWI (i.e. don’t restore the
  2611. old value of R0 if it had been saved). e.g.
  2612. 1.10
  2613. .a_module_routine
  2614. 1.10
  2615. STMFD R13!,{r0-2 ,14} \or however many registers you need to save
  2616. 1.10
  2617. SWI “XOS_SomethingOrOther”
  2618. 1.10
  2619. STRVS R0,[R13] \overwrite old r0 with error pointer
  2620. 1.10
  2621. LDMVSFD R13!,{r0-2 ,PC}
  2622. 1.10
  2623. \ the last 2 statements could alternatively have been :
  2624. 1.10
  2625. \
  2626. 1.10
  2627. \ ADDVS R13,R13,#4 : LDMVSFD R13!,{r1-2 ,PC}
  2628. 1.10
  2629. For short routines, or where several SWIs are used, the following is
  2630. neater..
  2631. 1.10
  2632. .a_short_routine
  2633. 1.10
  2634. STMFD R13!,{r0-5 ,14}
  2635. 1.10
  2636. SWI “XOS_SomeSwi”
  2637. 1.10
  2638. SWIVC “XOS_SomethingElse”
  2639. 1.10
  2640. SWIVC “XOS_YetAnotherSwi”
  2641. 1.10
  2642. STRVS R0,[R13]
  2643. 1.10
  2644. LDMFD R13!,{r0-5 ,PC}
  2645. 1.10
  2646. In this example, all code after first SWI should be conditional on V
  2647. clear, so if any SWI gives an error, the code will ‘drop through’ to the
  2648. end.
  2649. 1.10
  2650. Remember that some SWIs may return errors you don’t expect — e.g.
  2651. OS_WriteC could return an error when output is *Spooled, setting the
  2652. screen mode could give ‘Bad Mode’ etc. — some thought is required to
  2653. ensure that module code will be reliable in all environments.
  2654. 1.10
  2655. When setting up offsets in headers and command tables, it is much easier
  2656. to specify them when using offset assembly (OPT 4/6/7) — set O% to the
  2657. code buffer, and P% to 0. Offsets can then be included directly with
  2658. EQUD (e.g. EQUD moduletitle). Warning — if you are still using Basic
  2659. 1.00, there is a bug in ALIGN when using offset assembly. Version 1.02
  2660. is OK.
  2661. 1.10
  2662. The following assembler macro is useful when building keyword tables in
  2663. modules (it assumes the use of offset assembly, as described above):
  2664. 1.10
  2665. DEF FNcommand(I%,A$)
  2666. 1.10
  2667. [ OPTpass : EQUS A$ : EQUB0 :
  2668. 1.10
  2669. ALIGN
  2670. 1.10
  2671. EQUD EVAL(A$)
  2672. 1.10
  2673. EQUD I%
  2674. 1.10
  2675. EQUD EVAL(A$+“syntax”)
  2676. 1.10
  2677. EQUD EVAL(A$+“help”)
  2678. 1.10
  2679. ]:=pass
  2680. 1.10
  2681. OPT FNcommand(“NewCmd”,N) will create a table entry, using the labels
  2682. .NewCmd .NewCmdhelp and .NewCmdsyntax (N is the information word).
  2683. 1.10
  2684. Note that ‘pass’ is the name of the pass variable — change this if you
  2685. use a different name.
  2686. 1.10
  2687. Podule manager/Clock slowdown
  2688. 1.10
  2689. (Ref. issue 7, page 44) The problem here is that SWIs are passed to
  2690. modules with interrupts disabled, so if the SWI takes a significant
  2691. amount of time to complete, the clock will slow down (the mouse pointer
  2692. will also become sluggish). I can’t see why the podule manager should
  2693. need interrupts off, so it’s probably an unintended ‘feature’ — SWI code
  2694. which takes time to execute SHOULD enable interrupts, unless they have
  2695. to be off. (The digitiser module only runs with interrupts off when
  2696. absolutely necessary!) When interrupts have been disabled for signifi
  2697. cant amounts of time, the seconds count of the real-time clock gets out
  2698. of step with the minutes, which then don’t roll over at 59 secs — this
  2699. looks weird if you don’t know about it!
  2700. 1.10
  2701. System Devices
  2702. 1.10
  2703. (Ref. issue 6, page 41) There is a very interesting feature, which I
  2704. haven’t seen documented, concerning device oriented filing systems. When
  2705. you set the printer type using *FX5,n where n is greater than 2, the OS
  2706. looks for a system variable called printertype$n — n being the value
  2707. used for FX5. This variable holds the name of the output file or device
  2708. to which printer output should be sent. The Econet module, NetPrint,
  2709. uses this to set printer type 4 to “netprint:”. What happens is that
  2710. when you do <ctrl-B>, a file is opened, with the name given in this
  2711. system variable, and <ctrl-C> closes the file. While this would normally
  2712. send output to a hardware device, it can also use the name of a normal
  2713. file; e.g.
  2714. 1.10
  2715. *set printertype$5 outfile
  2716. 1.10
  2717. *fx5 5
  2718. 1.10
  2719. Will cause subsequent printer output to be written to the file “outfile”
  2720. — handy for debugging, and for saving data to print on other machines.
  2721. Note that this will only work if a program does VDU2, sends ALL its
  2722. output, then does VDU3. If it keeps turning the printer on and off all
  2723. the time with VDU2/3, only the last part of the output will be in the
  2724. file, as VDU2 re-opens the file, discarding its previous contents.
  2725. (Econet users know only too well the problems caused by software not
  2726. handling the printer correctly!)
  2727. 1.10
  2728. Just for fun, try :
  2729. 1.10
  2730. *set printertype$5 vdu:
  2731. 1.10
  2732. *fx5 5
  2733. 1.10
  2734. <Ctrl-B>
  2735. 1.10
  2736. All vdu output will appear ttwwiiccee!! — once via the normal route, and
  2737. again via the printer stream.
  2738. 1.10
  2739. Use of SYS
  2740. 1.10
  2741. (Ref. issue 9, page 47) The following is a bomb-proof version of OSCLI
  2742. in BASIC, which will report errors without entering BASICs error handler
  2743. (it can also be used for other SWIs — e.g. OS_File to trap filing errors
  2744. neatly)
  2745. 1.10
  2746. DEFPROCoscli(OS$)
  2747. 1.10
  2748. LOCAL flag%,error%
  2749. 1.10
  2750. SYS“XOS_CLI”,OS$ TO error% ; flag%
  2751. 1.10
  2752. IF flag% AND 1 THEN P.“Error : ”;:SYS“OS_Write0”,error%+4
  2753. 1.10
  2754. REM the error number can be read using !error%
  2755. 1.10
  2756. ENDPROC
  2757. 1.10
  2758. It works by reading back the V flag and error pointer returned by the X
  2759. version of the SWI
  2760. 1.10
  2761. TWIN
  2762. 1.10
  2763. (Ref. issue 7, page 7) You can warm start Twin using *Twin -warm, using
  2764. the same version of Twin, of course — *GO may cause problems if the code
  2765. has been corrupted, (or you’ve forgotten the address!). There is a bug
  2766. in all the versions of Twin I’ve seen (I’m not sure what version has
  2767. been released), which means that when exiting from TWIN to BASIC, the
  2768. event vector is messed up, so if you overwrite the address where Twin
  2769. was run, and enable events, the machine crashes. This can be avoided by
  2770. doing QUIT, *BASIC, and OLD.
  2771. 1.10
  2772. In one issue, there was a tip for entering ARMBE automatically at the
  2773. line in error — here’s a similar routine if you prefer using TWIN to
  2774. edit BASIC programs — It uses the TWINO8 option to strip line numbers
  2775. (which you don’t need to use, DO YOU!!). If the error wasn’t Escape,
  2776. pressing <Y> will enter TWIN at the line where the error occurred. Note
  2777. that it assumes lines are numbered in 10s — this will be the case if the
  2778. program has been edited in TWIN without line numbers, but not if lines
  2779. have been inserted/deleted from the BASIC prompt — in this case, enter
  2780. TWIN, and exit again, or do RENUMBER.
  2781. 1.10
  2782. ON ERROR PROCERR
  2783. 1.10
  2784. ...
  2785. 1.10
  2786. ...
  2787. 1.10
  2788. DEFPROCERR
  2789. 1.10
  2790. REPORT:PRINT“ at line ”ERL
  2791. 1.10
  2792. IF ERR=17 END
  2793. 1.10
  2794. PRINT“EDIT ?”:IF GET$=“Y” ELSE END
  2795. 1.10
  2796. *FX138 0 129
  2797. 1.10
  2798. *FX138 0 128
  2799. 1.10
  2800. FORA%=1 TO LEN(STR$(ERL DIV10))
  2801. 1.10
  2802. SYS 6,138,,ASC(MID$(STR$(ERL DIV10),A%,1))
  2803. 1.10
  2804. NEXT:*FX138 0 13
  2805. 1.10
  2806. END
  2807. 1.10
  2808. Hidden software
  2809. 1.10
  2810. (Ref. issue 9, page 4)  Take a close look at the digitiser module!
  2811. 1.10
  2812.  
  2813. Hints & Tips
  2814. 1.11
  2815. •   *COMPACT − The User Guide says that *COMPACT “moves files around on
  2816. the disc, collecting all the free space into a continuous block”.
  2817. However, if you have a disc that has several gaps you will find that you
  2818. need several compactions. One disc which had 5 gaps in the FS map had to
  2819. be compacted eight times before the map showed only a single gap. (See
  2820. review of R.A.Engineering’s Utilities, page ?????)
  2821. 1.11
  2822. •   *COPY − When copying multiple files using wildcards, you must ONLY
  2823. specify the directory into which to copy and not try to specify the
  2824. actual file name in any way e.g. if you want to copy files PROGA, PROGB,
  2825. PROGC etc from the “BASIC” directory into the “BACKUP” directory, use
  2826. *COPY $.BASIC.PROG* $.BACKUP.* but if you try to use *COPY $.BASIC.PROG*
  2827. $.BACKUP.PROG* it won’t work. This is not desperately clear in the User
  2828. Guide and I’ve only just worked out why 90% of my attempts to do
  2829. wildcard copies have not worked!
  2830. 1.11
  2831. •   CAPS LOCK − Another thing which is obvious if you know about it is
  2832. that you can set up the keyboard to print upper case normally but then
  2833. go into lower case when you press <shift>. This can be done either by
  2834. *Configure SHCAPS if you want it to start up in that mode (or CAPS or
  2835. NOCAPS if you don’t) or by holding the shift key down and pressing and
  2836. releasing the Caps Lock key.
  2837. 1.11
  2838. •   CHAINing programs − In response to our complaint in last month’s Bug
  2839. or Feature that programs chaining one another cannot be called from
  2840. drive 1 using the desktop, Philip Colmer of Acorn’s Customer Support
  2841. Department tells us that it is definitely a feature. There are a number
  2842. of ways of avoiding the problem. Firstly, you could reference files by
  2843. disc name, so we could CHAIN“:ProgDisc.$.Progs.Nextprog” or whatever.
  2844. Alternatively, you could use the fact that when you run a BASIC program
  2845. in drive 1 from the desktop, it generates a command something like
  2846. *basic −quit “ADFS::1.$.Progs.FirstProg”. You could then use OS_GetEnv
  2847. to read the command string and find out where the program has been
  2848. called from. Thridly, have a look at PC.PC from the 1.20 version of the
  2849. PC emulator to see an intelligent (incredibly so!) boot-up program which
  2850. has been very carefully commented to enable you to modify it for your
  2851. own use.
  2852. 1.11
  2853. •   Auto-booting − Again from Philip Colmer comes the suggestion that
  2854. you should use the PC.PC program to boot up applications from within
  2855. directories on the hard disc. The program uses legal OS calls instead of
  2856. re-configuring. It does a *DIR and then runs the program specified. The
  2857. only restriction on it is that it cannot change the system sprite size
  2858. but, he points out, if programs were written properly, they would not be
  2859. using the system sprite area!
  2860. 1.11
  2861. •   System Devices − You can treat devices as files, e.g.
  2862. C%=OPENOUT(“NETPRINT:”). This is particularly useful in the example
  2863. given on page 9 last month because you can now open a channel to the
  2864. network printer, send some stuff to it when you are ready (using BPUT
  2865. #C%) and when everything is done, close the ‘file’ (CLOSE#0) and it will
  2866. then be printed! (This also came from Philip Colmer − Thanks PC! −
  2867. Funny, you know, I always thought that PC stood for Personal Computer!
  2868. Ed.)
  2869. 1.11
  2870. The following Hints were prepared by Adrian LookÉ
  2871. 1.11
  2872. •   Smooth Scrolling − Using VDU 23,7 you can scroll the current text
  2873. window up, down, left, or right. Horizontally, the picture can be
  2874. scrolled by one byte, but vertically it can only be scrolled by one
  2875. character cell. This can produce a smooth scroll by placing a WAIT (for
  2876. the vertical sync pulse) command before the VDU 23,7. If any further
  2877. delay is implemented then the picture shudders as it scrolls. This means
  2878. that a slow smooth scroll cannot be used. The answer is to redefine the
  2879. screen base address manually (as we used to do on the BBC). This is done
  2880. using ‘OS_Word’ &16.
  2881. 1.11
  2882. DIM block% 4
  2883. 1.11
  2884. :
  2885. 1.11
  2886. block%?0=type
  2887. 1.11
  2888. block%!1=offset
  2889. 1.11
  2890. WAIT
  2891. 1.11
  2892. SYS “OS_Word”,&16,block%
  2893. 1.11
  2894. “type”   : when 1 − base used by VDU drivers (i.e. screen updated)
  2895. 1.11
  2896.    : when 2 − base used by hardware (i.e. screen displayed)
  2897. 1.11
  2898. “offset”   : from the address of the base of the screen buffer to the
  2899. start of the screen display.
  2900. 1.11
  2901. The following example program should help to make it clearer.
  2902. 1.11
  2903.  10 REM >scrolling
  2904. 1.11
  2905.  20
  2906. 1.11
  2907.  30 REM **************************
  2908. 1.11
  2909.  40 REM *   Scrolling Screens??  *
  2910. 1.11
  2911.  50 REM * written by Adrian Look *
  2912. 1.11
  2913.  60 REM *     21st July 1988     *
  2914. 1.11
  2915.  70 REM **************************
  2916. 1.11
  2917.  80
  2918. 1.11
  2919.  90 MODE 0:OFF
  2920. 1.11
  2921. 100 DIM block% &10
  2922. 1.11
  2923. 110 count=0
  2924. 1.11
  2925. 120
  2926. 1.11
  2927. 130 PRINTTAB(3,15);“Some text”
  2928. 1.11
  2929. 140
  2930. 1.11
  2931. 150 REPEAT
  2932. 1.11
  2933. 160   PROCscroll(1)
  2934. 1.11
  2935. 170 UNTIL 0
  2936. 1.11
  2937. 180 END
  2938. 1.11
  2939. 190
  2940. 1.11
  2941. 200 DEFPROCscroll(speed)
  2942. 1.11
  2943. 210 PROCinfo
  2944. 1.11
  2945. 220 add=x/m
  2946. 1.11
  2947. 230 IF SGN(count)>0 THEN speed=-speed
  2948. 1.11
  2949. 240 REPEAT
  2950. 1.11
  2951. 250   block%?0=2
  2952. 1.11
  2953. 260   block%!1=add*count
  2954. 1.11
  2955. 270   WAIT
  2956. 1.11
  2957. 280   SYS “OS_Word”,22,block%
  2958. 1.11
  2959. 290   count+=speed
  2960. 1.11
  2961. 300 UNTIL add*count>x*y/m+4160 OR count<0
  2962. 1.11
  2963. 310 ENDPROC
  2964. 1.11
  2965. 320
  2966. 1.11
  2967. 330 DEFPROCinfo
  2968. 1.11
  2969. 340 SYS “OS_ReadModeVariable”,MODE,4 TO ,,x
  2970. 1.11
  2971. 350 x=4-x:x=8*(2^x)*10
  2972. 1.11
  2973. 360 SYS “OS_ReadModeVariable”,MODE,5 TO ,,y
  2974. 1.11
  2975. 370 y=3-y:y=y*256
  2976. 1.11
  2977. 380 SYS “OS_ReadModeVariable”,MODE,3 TO ,,c
  2978. 1.11
  2979. 390 CASE c OF
  2980. 1.11
  2981. 400   WHEN 1  : m=8
  2982. 1.11
  2983. 410   WHEN 3  : m=4
  2984. 1.11
  2985. 420   WHEN 15 : m=2
  2986. 1.11
  2987. 430   WHEN 63 : m=1
  2988. 1.11
  2989. 440 ENDCASE
  2990. 1.11
  2991. 450 ENDPROC
  2992. 1.11
  2993.  
  2994. 1.11
  2995. •   Desktop Utilities − The desktop is essentially a skeleton program
  2996. which allows the programmer to install his/her own icons, windows,
  2997. menus, commands, etc, which the DeskTop will then operate. This is done
  2998. with a very clever set of FN’s. for example:
  2999. 1.11
  3000. PROCinstall(“adrian”)
  3001. 1.11
  3002. :
  3003. 1.11
  3004. DEFPROCinstall(file$)
  3005. 1.11
  3006. INSTALL file$
  3007. 1.11
  3008. void=EVAL(“FNinstall_file_”+file$)
  3009. 1.11
  3010. ENDPROC
  3011. 1.11
  3012. This means that by EVALuating a string the DeskTop can call any file-
  3013. specific function. In the case above, FNinstall_file_adrian will be
  3014. called. By using this system, any command can be ‘installed’ or even
  3015. replaced. Explaining or even listing the functions and procedures
  3016. available in the DeskTop program is not really possible in the magazine.
  3017. However, bearing in mind the methods used, you will find before long you
  3018. can write some very useful tools for the DeskTop. It should even
  3019. possible to completely re-write the it! As an example, here is a program
  3020. which will allow you to use star commands. Don’t forget to *SETTYPE
  3021. ‘filename’ FE0 to indicate that the program is a desktop utility (We
  3022. have included several other utilities on the program disk).
  3023. 1.11
  3024.  10 REM >star
  3025. 1.11
  3026.  20
  3027. 1.11
  3028.  30 REM *******************************
  3029. 1.11
  3030.  40 REM *  Star Commands for Desk Top *
  3031. 1.11
  3032.  50 REM *    written by Adrian Look   *
  3033. 1.11
  3034.  60 REM * original idea Denis Howlett *
  3035. 1.11
  3036.  70 REM *******************************
  3037. 1.11
  3038.  80
  3039. 1.11
  3040.  90 DEFFNinstall_file_star
  3041. 1.11
  3042. 100 file=OPENIN(filehandler_path$+“.istar”):CLOSE #file
  3043. 1.11
  3044. 110 IF file=0 THEN ERROR 1,“Can’t find icon file ‘istar’”
  3045. 1.11
  3046. 120 OSCLI(“SMERGE ”+filehandler_path$+“.istar”)
  3047. 1.11
  3048. 130
  3049. PROCsys_addtoiconbar(“star”,“command”,&301A,icon_fgcol,icon_bgcol,48)
  3050. 1.11
  3051. 140 SYS “Wimp_ForceRedraw”,-1,0,0,1279,100
  3052. 1.11
  3053. 150 =0
  3054. 1.11
  3055. 160
  3056. 1.11
  3057. 170 DEFFNaction_star
  3058. 1.11
  3059. 180 PROCstar_command(5,5,75,25,2,1)
  3060. 1.11
  3061. 190 =0
  3062. 1.11
  3063. 200
  3064. 1.11
  3065. 210 DEFPROCstar_command(x0,y0,x1,y1,bx,by)
  3066. 1.11
  3067. 220 *POINTER 0
  3068. 1.11
  3069. 230 VDU 26,4,28,x0,y1,x1,y0
  3070. 1.11
  3071. 240 y0=31-y0:y1=31-y1
  3072. 1.11
  3073. 250 gx=x0*16-bx*8:dx=(x1-x0)*16+bx*16+16
  3074. 1.11
  3075. 260 gy=y1*32-by*16:dy=(y0-y1)*32+by*32+32
  3076. 1.11
  3077. 270 GCOL 0,&4:RECTANGLE FILL gx-4,gy-4,dx+8,dy+8
  3078. 1.11
  3079. 280 GCOL 0,&0:RECTANGLE FILL gx,gy,dx,dy
  3080. 1.11
  3081. 290 LOCAL ERROR
  3082. 1.11
  3083. 300 REPEAT
  3084. 1.11
  3085. 310   ON ERROR LOCAL PRINT REPORT$
  3086. 1.11
  3087. 320   *FX 4,0
  3088. 1.11
  3089. 330   INPUT“*”star$
  3090. 1.11
  3091. 340   *FX 4,1
  3092. 1.11
  3093. 350   OSCLI(star$)
  3094. 1.11
  3095. 360 UNTIL star$=“”
  3096. 1.11
  3097. 370 RESTORE ERROR
  3098. 1.11
  3099. 380 SYS “Wimp_ForceRedraw”,-1,gx-4,gy-4,gx+dx+8,gy+dy+8
  3100. 1.11
  3101. 390 VDU 26,5
  3102. 1.11
  3103. 400 *FX 21,9
  3104. 1.11
  3105. 410 *POINTER
  3106. 1.11
  3107. 420 ENDPROC
  3108. 1.11
  3109. N.B. (i) You will need a STAR shaped icon called ‘command’, saved as
  3110. ‘istar’. However, if you want to test the program before designing an
  3111. icon, skip lines 100-120 and change “command” in line 130 to “unknown”.
  3112. 1.11
  3113.   (ii) Because the DeskTop uses the filename of the utility as a ‘seed’,
  3114. it important that the utility’s filename be consistent with its
  3115. procedure names. For example: if you rename ‘star’ to ‘command’ then the
  3116. DeskTop will look for FNaction_command instead of FNaction_star, so you
  3117. will get an error!
  3118. 1.11
  3119. •   Making the Print Key Save − Last month it was suggested in Neil
  3120. Strong’s article about making the print key print that a slight
  3121. modification of the program could make it save screen shots to the disc
  3122. using SCREENSAVE “$.pic” instead of HARDCOPYFX. However, this limits you
  3123. to one screen shot at a time (otherwise you will overwrite your last
  3124. one). If we use the system variables and update the ‘print key’ program
  3125. we can get it to save a screen called ‘$.scr0’, followed by, ‘$.scr1’,
  3126. ‘$.scr2’..etc!
  3127. 1.11
  3128. 871 adr r0,command1
  3129. 1.11
  3130. 872 swi “OS_CLI”
  3131. 1.11
  3132. 920 equs “ScreenSave scr<file>”  ; FastSave even!#?
  3133. 1.11
  3134. 941 .command1
  3135. 1.11
  3136. 942 equs “SetEval file file+1”
  3137. 1.11
  3138. 943 EQUB 0
  3139. 1.11
  3140. 944 ALIGN
  3141. 1.11
  3142. 1020 OSCLI(“SetEval file 0”)
  3143. 1.11
  3144. 1030 END
  3145. 1.11
  3146. If you wish to (re)set the ‘file count’ to n, then just type:
  3147. 1.11
  3148. *SETEVAL file n
  3149. 1.11
  3150. •   SpellMaster Browse in Wordwise Plus − If you have Spell-Master and
  3151. Wordwise Plus you can very easily write a two line segment program which
  3152. will call the browse window. i.e.
  3153. 1.11
  3154. *BROWSE
  3155. 1.11
  3156. DISPLAY
  3157. 1.11
  3158. Thus if the program were in segment zero you could press <shift><print>
  3159. while editing your text and check your spelling using the browse window.
  3160. This obviously opens up all sorts of possibilities for Wordwise Plus to
  3161. use Spell Master’s facilities.
  3162. 1.11
  3163.  
  3164. •   PipeDream − For those who have not used View etc and who have
  3165. therefore not had to fight printer drivers, the following may be useful:
  3166. 1.12
  3167. The printer driver is loaded on initialisation and when <Alt><P><D> is
  3168. used, but NOT when a document is printed, so any changes made to a
  3169. printer driver are not acted upon until either of these events. It’s
  3170. obvious really, but if you haven’t registered the fact, it could cause a
  3171. lot of confusion.
  3172. 1.12
  3173. For those who wish to use bold throughout a document, (e.g. for
  3174. producing something on a dot-matrix printer that will go through a Fax
  3175. machine) it would seem an obvious solution to put markers at the
  3176. beginning and end of the document and make it all bold highlight.
  3177. However, this is not a good idea because your printer will have to cope
  3178. with double printing each word, one word at a time! Instead, change the
  3179. printer driver so that the bold highlight is NOT cancelled at the end of
  3180. a line. i.e. change the Y to an N and either send the necessary ESC
  3181. sequence in the PON line or put a highlight 2 at the very start of your
  3182. text.
  3183. 1.12
  3184. •   Transferring character definitions − If you have files produced by
  3185. the CHARDES program from the Master Welcome disc (mentioned last month,
  3186. page 34) here is a little BASIC program to run the files on the
  3187. Archimedes:
  3188. 1.12
  3189.  10 REM >ThinChar
  3190. 1.12
  3191.  20 CLS : INPUT “FileName ”;A$
  3192. 1.12
  3193.  30 OSCLI (“LOAD ”+A$+“ 12800”)
  3194. 1.12
  3195.  40 FOR I=127 TO 32 STEP -1
  3196. 1.12
  3197.  50 VDU23,I
  3198. 1.12
  3199.  60 VDU(?(&12844+I-32))
  3200. 1.12
  3201.  70 VDU(?(&128A4+I-32))
  3202. 1.12
  3203.  80 VDU(?(&12904+I-32))
  3204. 1.12
  3205.  90 VDU(?(&12964+I-32))
  3206. 1.12
  3207. 100 VDU(?(&129C4+I-32))
  3208. 1.12
  3209. 110 VDU(?(&12A24+I-32))
  3210. 1.12
  3211. 120 VDU(?(&12A84+I-32))
  3212. 1.12
  3213. 130 VDU(?(&12AE4+I-32))
  3214. 1.12
  3215. 140 NEXT
  3216. 1.12
  3217. •   Quazer (again). The fix for Quazer 1.42 is ?&3D090=N¼ of lives,
  3218. ?&3D98F=&F2, *SAVE Quazcode 9000 +365AC, *settype Quazcode FF8. •  
  3219. Printing in binary − PRINT ~number% prints number% in hexadecimal but
  3220. there isn’t an equivalent for printing in binary. However, there are SYS
  3221. commands that will do it for you. The following program illustrates the
  3222. use of SYS &E0 which converts a number to a four byte binary number
  3223. string (SYS’s &DF, DE and DD convert to 3, 2 and 1 byte binary numbers).
  3224. 1.12
  3225. The only other point of interest in the program is the way that the
  3226. leading zeros are stripped off by lines 190, 200 (which can be omitted,
  3227. of course, if you want the leading zeros!). The INSTR command finds the
  3228. position of the first “1” starting from the left hand end of the string,
  3229. take off one to give the number of zeros to be removed. The LEFT$
  3230. command at line 200 turns those zero characters into the character set
  3231. by pad$. (This illustrates the fact that you can use string functions on
  3232. the left hand side of an assignment.) If pad$ is a space character, the
  3233. binary numbers produced will all be the same length and so will be right
  3234. justified but if you want the strings left justified, you can set pad$
  3235. to CHR$0. (An alternative for left justification would be to use
  3236. numb$=RIGHT$(numb$,32-n%).)
  3237. 1.12
  3238.  10 REM > BinPrint
  3239. 1.12
  3240.  20
  3241. 1.12
  3242.  30 pad$=CHR$0 :REM left justif’n
  3243. 1.12
  3244.  40 pad$=“ ” : REM right justif’n
  3245. 1.12
  3246.  50 OS_ConvertBinary4=&E0
  3247. 1.12
  3248.  60
  3249. 1.12
  3250.  70 REPEAT
  3251. 1.12
  3252.  80   INPUT “Number? ”number$
  3253. 1.12
  3254.  90   number%=EVAL(number$)
  3255. 1.12
  3256. 100   A$=FNbinconvert(number%)
  3257. 1.12
  3258. 110   PRINT A$
  3259. 1.12
  3260. 120 UNTIL0
  3261. 1.12
  3262. 130
  3263. 1.12
  3264. 140 DEF FNbinconvert(numb%)
  3265. 1.12
  3266. 150 LOCAL numb$,n%
  3267. 1.12
  3268. 160 
  3269. 1.12
  3270. 170 SYS OS_ConvertBinary4,numb%,
  3271. 1.12
  3272. 32,numb$ TO numb$
  3273. 1.12
  3274. 180
  3275. 1.12
  3276. 190 n%=INSTR(numb$,“1”)-1
  3277. 1.12
  3278. 200 LEFT$(numb$,n%)=STRING$(n%
  3279. 1.12
  3280. ,pad$)
  3281. 1.12
  3282. 210 =numb$ 
  3283. 1.12
  3284. •   Hard Disc Head Parking − Don’t forget that if the RFS is selected,
  3285. it will accept the *BYE command but it will not park the heads on the
  3286. drive. You have to be in ADFS.
  3287. 1.12
  3288. •   Screenload/save − It is interesting to compare the time taken to
  3289. save and load screens using *screensave and *screenload with the time
  3290. taken to define the whole screen as a sprite and save it using *Ssave or
  3291. load it with *Sload. In all modes there is considerable saving e.g.
  3292. 1.12
  3293.    Mode1   Mode12   Mode 15
  3294. 1.12
  3295.   *Screensave(load)   7(4)   25(18)   52(38)
  3296. 1.12
  3297.   *Ssave(load)   1(<1)   3(3)   7(6)
  3298. 1.12
  3299. •   Libraries and *mountÉ If you *mount a disc, the library from the
  3300. previous disc remains in memory. For those with a single drive, this may
  3301. seem a nuisance but the reason the library is not changed is that you
  3302. can have a library on one drive and shove discs in and out of the other
  3303. drive without losing the library − particularly important with hard
  3304. discs. Obviously you could reselect the library with *library $.Library
  3305. but it is much easier to use *bye. That way, you don’t even have to use
  3306. *mount.
  3307. 1.12
  3308. •   Reliable RS423 transfer from BBC’s. This is mostly just reiterating
  3309. what has gone before, but to transfer reliably from BBC to Archimedes at
  3310. 9,600 baud you need to [1] use the 1.24 serial patch (on Archive program
  3311. disc 7) [2] Set *Configure DATA 5 (i.e. 8 data bits and 1 stop bit which
  3312. is the default on the BBC) and [3] connect the BBC’s RTS output to the
  3313. Archimedes’ DSR input (pin 6) instead of the CTS input (pin 8) and link
  3314. pins 1, 4 and 8 together.
  3315. 1.12
  3316. •   View A3.0 Further to the patches given in July issue (Vol. 1.10 page
  3317. 6) Richard House reckons that instead of using &FF’s in the various
  3318. locations you should use &00’s. (If someone has a working version of
  3319. A3.0, please send it in so that we can add it to our collection of
  3320. working patches!)
  3321. 1.12
  3322. •   Viewstore 1.1 − Following on from the July Hints & Tips, not that
  3323. not only should &ABE2, 3 and 4 be set to &EA, but also, the LDA #&82,
  3324. JSR OSBYTE (&A9, &82, &20, &F4, &FF) routines need to be altered as with
  3325. View A3.0. These occur at locations &A256 − A25A, &AA22 − AA26 and &AB98
  3326. − AB9C. The code required in each of these locations is &A2, &00, &A0,
  3327. &00, &EA. (LDX #&00, LDY #&00, NOP). (If you can’t cope with these
  3328. technicalities, send us a disc with Viewstore 1.1 on it and we’ll modify
  3329. it for you.)
  3330. 1.12
  3331. •   Correct Nesting? To check that the nesting of loops, IF’s and CASE’s
  3332. is correct within a program, use LISTO2 and LIST the program. If at the
  3333. end of the program, the final line has two or more spaces after the line
  3334. number, you’ve got an incorrect nesting somewhere. To check through,
  3335. there should be no spaces between line numbers and DEFPROC’s, DEFFN’s or
  3336. ENDPROC’s.
  3337. 1.12
  3338. •   Marconi Trackerball. Archimedes’ mouse’s tail can apparently be
  3339. removed, so says Mr T A Doncaster, and plugged into an identical
  3340. connector within the Marconi RB2/PC-1 tracker ball and all works without
  3341. any further fiddling about. Watch that the supply polarity is correct
  3342. though.
  3343. 1.12
  3344. •   Readable zeros. In InterSheet in particular, I find the slashed-
  3345. zeros misleading − they can easily be mistaken for eights. If you re-
  3346. program the zero character using a VDU23 command you can avoid the
  3347. confusion. It does increase the possibility of confusion with a capital-
  3348. O but that is far less important in spreadsheet work than confusion with
  3349. 8. So, I store the following program in the RAM on the RFS and call it
  3350. up with *IS<return>:
  3351. 1.12
  3352. 10 REM >RFS:IS
  3353. 1.12
  3354. 20 VDU23,48,60,102,102,102,102,
  3355. 1.12
  3356. 102,60,0
  3357. 1.12
  3358. 30 CHAIN “RFS:ISHEET”
  3359. 1.12
  3360. No doubt you could modify this program if you wanted to use the same re-
  3361. programmed zero character with other spreadsheet software.
  3362. 1.12
  3363. •   Computer salutions. R.E.Boldero, in the July edition, asked for a
  3364. way of getting his computer to greet him each time he switched on. The
  3365. next hint shows a partial solution.
  3366. 1.12
  3367. •   RFS Boot file − If you use a ROM podule with battery backup, you can
  3368. create a boot file that runs in the RFS and sets up all sorts of
  3369. goodies. I used to have a BASIC program called !BOOT which set up all
  3370. sorts of things on power-up or <ctrl-break> but if you are developing a
  3371. BASIC program, get stuck and press <ctrl-break>, you lose the program
  3372. because it is replaced by the boot program!!!!! After Adrian had fallen
  3373. into this trap a few times when using my computer, he developed the
  3374. following rather ingenious (not to say devious) EXECable boot program.
  3375. (*Configure Filesystem RFS, *Configure Boot and *OPT 4,3 in the RFS.)
  3376. 1.12
  3377. We have since added a facility for making Arthur talk to you a bit more
  3378. politely, from an idea sent in by Chris Hayes.
  3379. 1.12
  3380. To create the boot file, I start with the following Wordwise Plus file
  3381. which is then spooled as “RFS:!BOOT”.  (The line numbers are purely for
  3382. discussion purposes.)
  3383. 1.12
  3384.  1 <gr>LL160<gr>PC “~”
  3385. 1.12
  3386.  2 VDU21
  3387. 1.12
  3388.  3 VDU6,11,32,32,32,32,32,32,21
  3389. 1.12
  3390.  4 VDU6,19,0,4,0,0,0,21
  3391. 1.12
  3392.  5 VDU6,19,1,0,0,0,0,21
  3393. 1.12
  3394.  6 VDU6,13,11,11,11,11,11,21
  3395. 1.12
  3396.  7 VDU6:COLOUR 6:VDU21
  3397. 1.12
  3398.  8 VDU6:PRINT“N o r w i c h   C o
  3399. 1.12
  3400.  m p u t e r   S e r v i c e s“
  3401. 1.12
  3402. :VDU21
  3403. 1.12
  3404.  9 VDU6:COLOUR 7:VDU21
  3405. 1.12
  3406.  
  3407. 1.12
  3408. 10 *SETCLI$PROMPT <13><10>Good
  3409. 1.12
  3410.  Morning! *
  3411. 1.12
  3412. 11 *IF SYS$TIME LEFT 2>11 THEN SET
  3413. 1.12
  3414.  CLI$PROMPT <13><10>Good Afternoon! *
  3415. 1.12
  3416. 12 *IF SYS$TIME LEFT 2>18 THEN SET
  3417. 1.12
  3418.  CLI$PROMPT <13><10>Good
  3419. 1.12
  3420.  Evening! *
  3421. 1.12
  3422.  
  3423. 1.12
  3424. 13 *KEY0 *MOUNT 0|M*FREE|M*CAT|M
  3425. 1.12
  3426. 14 *KEY1 etc...
  3427. 1.12
  3428. 20 *KEY12 *FORMAT 0 D|M
  3429. 1.12
  3430.  
  3431. 1.12
  3432. 21 *SET Run$Path ,ADFS:$.,RFS:$.
  3433. 1.12
  3434. ,%.
  3435. 1.12
  3436. 22 *SET Alias$> CAT
  3437. 1.12
  3438.  
  3439. 1.12
  3440. 23 *FX255,8
  3441. 1.12
  3442. 24 *ADFS
  3443. 1.12
  3444. 25 *BASIC<gr>OC6
  3445. 1.12
  3446. The LL160 command (1) ensures that the command lines are not split up
  3447. and the PC command ensures that the pad characters are sent when
  3448. spooling the file. (2) switches off the screen display, but since this
  3449. actual command appears on the screen, (3) moves up and wipes it out
  3450. again! (4) and (5) change foreground and background colours (6) moves
  3451. the cursor back up the screen, before printing out a welcome message in
  3452. a different colour, (7 & 8) and switching back to white (9). The IF
  3453. SYS$TIME commands then sets up the Arthurian prompt (normally a star on
  3454. its own) to be something a bit more timely. (This doesn’t automatically
  3455. change the greeting as the time of day changes, it gives you the
  3456. greeting that was appropriate last time you pressed <ctrl-break>.) The
  3457. function keys are then programmed, the runpath is set up etc (21 − 24)
  3458. (See Archive 1.7, page 8) before BASIC is invoked with an OC6 to re-
  3459. enable the screen.
  3460. 1.12
  3461. (You could create it by making it a BASIC program that started...
  3462. 1.12
  3463. *SPOOL RFS:!BOOT
  3464. 1.12
  3465. PRINT“VDU21”
  3466. 1.12
  3467. and endedÉ
  3468. 1.12
  3469. PRINT“*BASIC”;CHR$(6);
  3470. 1.12
  3471. *SPOOL
  3472. 1.12
  3473. I haven’t tried this BASIC version, but I presume it would work.)
  3474. 1.12
  3475. •   Keyboard repeat speed. You may have noticed with First Word Plus or
  3476. other wordprocessors that when pressing <return> on auto-repeat it
  3477. cannot keep up and, when you take your finger off the key, it goes on
  3478. spewing out returns until the keyboard buffer is empty. You can avoid
  3479. this by reducing the auto-repeat speed with, say, *Configure repeat 15
  3480. (instead of the default of 8) and then pressing <ctrl-break>. (It should
  3481. really be called the auto repeat time as the number is the time in
  3482. centi-seconds between repeats.) Instead of changing the configuration,
  3483. you may prefer to could add a *FX12,15 command into the !BOOT file and
  3484. then press <ctrl-break> after your WP session to restore the default
  3485. repeat speed.
  3486. 1.12
  3487. •   Disappearing cursor in EDIT. Have you noticed that if you hold the
  3488. cursor key down in the BASIC editor, the cursor disappears so that you
  3489. can’t see where it is on the line? Try changing the auto repeat speed as
  3490. mentioned in the hint above − doesn’t always work, but it seems to make
  3491. it better if you have a faster speed (smaller number in the command).
  3492. 1.12
  3493. •   Auto indenting in EDIT. Some people like to put the indenting into
  3494. the program itself to show the structure (as opposed to using LISTO3 to
  3495. show the structure when you list it). If you are using the ARM BASIC
  3496. editor, you can add the spaces automatically as you type in the program.
  3497. What happens is that if you put a number of spaces at the beginning of
  3498. one program line then, when you press <return>, the new line has the
  3499. same number of leading spaces as the line before, so until you reach a
  3500. REPEAT or UNTIL or FOR or NEXT etc, you just press <return> and type the
  3501. next line without thinking about the indenting.
  3502. 1.12
  3503. •   Disappearing programs in EDIT!! On the BASIC editor, if you edit a
  3504. line that occupies more than one screen line and make it shorter, it may
  3505. leave a blank line on the screen (no problem − this disappears as soon
  3506. as you move the cursor away from that line). If you then press <return>
  3507. to create a new line, the new line goes in the gap left by the editing
  3508. (still, apparently, no problem). However as soon as you try to use any
  3509. of the move, delete, or copy functions, all the line numbers go wrong
  3510. and cursor movement becomes rather unpredictable. Indeed, if you move
  3511. down the program, you will find that when the line that was edited moves
  3512. off the top of the screen, the scrolling continues and the program
  3513. disappears into oblivion! (Reset and OLD will recover your program
  3514. intact.)
  3515. 1.12
  3516. The solution is, if you get a line gap, either re-number (which happens
  3517. automatically if the line numbers were already consecutive) or move down
  3518. a line then back up again before pressing <return>.
  3519. 1.12
  3520. •   Pencil for Artisan. If you want to add a ‘pencil’ facility to
  3521. Artisan, the joined-lines function can be made to provide this in the
  3522. following way. (1) Using a copy (not the original!!) of the Artisan
  3523. disc, enter the BASIC editor and load ART5. (2) Use Search and Edit to
  3524. find DEFPROCKB. (3) Alter the procedure so that it looks like this:-
  3525. 1.12
  3526. DEFPROCKB
  3527. 1.12
  3528. LOCAL X%, Y%, B%
  3529. 1.12
  3530. IF J%=6 AND CLARE%=-1 THEN
  3531. 1.12
  3532. MOUSE X%,Y%,B% :ENDPROC
  3533. 1.12
  3534. ELSE
  3535. 1.12
  3536. REPEAT:MOUSE X%,Y%,B%:UNTIL B%<>BB%:ENDPROC
  3537. 1.12
  3538. ENDIF
  3539. 1.12
  3540. (4) Save this as ART5. (5) For completeness, use the Welcome utility,
  3541. SEDIT, to change the joined-lines icon into a pencil icon. (6) Now, with
  3542. the joined-lines function selected, holding down <select> draws a
  3543. continuous line. On releasing <select>, the normal rubber band line
  3544. appears, but it can be released by pressing <adjust> once. Pressing
  3545. <adjust> again carries out the UNDO function.
  3546. 1.12
  3547. (While on the subject of modifying Artisan, note the short addition in
  3548. Acorn User, April ’88 which adds an airbrush effect.)
  3549. 1.12
  3550. •   Star LC24-10. If you are having problems with getting a Star LC24-10
  3551. to accept output from First Word Plus or Graphic Writer, check the EPROM
  3552. chip in the printer next to the dip switches. If it has a label on it
  3553. showing version 1.0, contact Star Micronics and they will supply a free
  3554. up-grade.
  3555. 1.12
  3556. •   Moving menus. If you find that your menus keep moving about, drag
  3557. the box down to the extreme bottom right corner of the screen until you
  3558. can go no further. This makes them a little more secure − simple, but
  3559. soothing!
  3560. 1.12
  3561. •   Programming for speed. Programs like EMR’s SoundSynth and Minerva’s
  3562. Hoverbod and Missile Control are actually written in BASIC, with calls
  3563. to ARM assembly language routines where extra speed is really necessary.
  3564. 1.12
  3565. If you thought professional quality programs demanded assembly language
  3566. only, think again! Perhaps there is a program you had thought of
  3567. writing, but did not feel could be written in BASIC; the speed of the
  3568. Archimedes has changed all of that.
  3569. 1.12
  3570. Your strategy should be to write the whole program in BASIC first and
  3571. then see which routines need replacing with assembly language in order
  3572. to provide the right response times.
  3573. 1.12
  3574. Mike Ginns’ recent book from DABS Press, “Archimedes Assembly Language”,
  3575. contains a large number of assembly language counterparts for BASIC
  3576. statements (he calls them “templates”), and would be of great value if
  3577. you want to try your hand at this sort of approach. Although the book
  3578. has rather a large number of grammatical errors and is not quite as
  3579. fully comprehensive as it claims to be, but is still a good buy at
  3580. £14.95. (Ian Nicholls)
  3581. 1.12
  3582. First Word Plus Hints
  3583. 1.12
  3584. •   Using PC’s − If you have access to a PC and a PC version of First
  3585. Word Plus, you may be interested to know that you can transfer files
  3586. between the two using the Getfile and Putfile utilities of the PC
  3587. Emulator. You can even transfer supplementary dictionaries the same way.
  3588. 1.12
  3589. •   Adding printer drivers − It may not be very obvious how you add the
  3590. extra printer drivers that we’ve provided on the program discs, onto
  3591. your First Word Plus disc. Suppose you want the Kaga Taxan driver. Put
  3592. in the program disc and type
  3593. 1.12
  3594. *copy 1WP.cfg.Kaga_Taxan 1WP.cfg.* P
  3595. 1.12
  3596. then change discs and press <space> as prompted. (Or use dual drives if
  3597. you have them.)
  3598. 1.12
  3599. •   Default printer driver − If you want to make, say the Juki driver,
  3600. the default so that it comes up with that as the driver when you boot up
  3601. the disc, use:
  3602. 1.12
  3603. *copy  $.1WP.cfg.Juki  $.Res*.
  3604. 1.12
  3605. 1WP.1wp_print F
  3606. 1.12
  3607. The F in the copy command makes it over-write the existing default
  3608. driver.
  3609. 1.12
  3610. •   Paging problems. You can now get a version of First Word Plus that
  3611. obeys the command in the printer driver to stop at the end of a page to
  3612. allow you to change the paper. Brian Carroll writesÉ “I returned my disc
  3613. to Acorn and had it back by return of post with a clear and helpful
  3614. letter. It seems that Acorn are at last getting the message about
  3615. customer support. There are only two modified files: $.resources.1WP.1WP
  3616. and $.resources.1WP. 1ML, so for anyone who has done some work to
  3617. configure their working master disc it would be simpler just to copy
  3618. these two files across than to start again from scratch. The bug-fix
  3619. works OK, so the printer drivers that I sent for Canon PW-1080A (program
  3620. disc number 10) will work properly.”
  3621. 1.12
  3622. •   LQ1050 − You can add double height to the printer driver merely by
  3623. using Search and Replace, changing 57 for 77 (double width for double
  3624. height). It works fine − the only thing to remember is to set the line
  3625. spacing to 2 in the ruler when choosing expanded pitch.
  3626. 1.12
  3627. •   Large documents. Beware when you are printing long documents (30
  3628. pages+) as FWP can get a bit confused and print the wrong pages.
  3629.  
  3630.  
  3631. •   How to wipe a disc clean − If you want to wipe a disc completely
  3632. clean, you can use *WIPE * ~CFR<return> (Use this command with care −
  3633. there’s no going back once you’ve pressed <return>!) − in other words,
  3634. remove files with any name (*), don’t ask for confirmation of each wipe
  3635. (~C), force them (F) to be deleted even if they are locked and do it
  3636. recursively (R) so that the contents of all directories are deleted.
  3637. However, even this drastic measure won’t allow you to delete a library
  3638. directory if one exists. So do a *Lib “”<return> before the *WIPE
  3639. command.
  3640. 2.1
  3641. •   GammaPlot/System Delta Plus − If you have been trying to import SDP
  3642. files into GammaPlot and have been unsuccessful, read onÉ Firstly you
  3643. have to copy the System Delta Plus software onto your GammaPlot disc.
  3644. Then if it still doesn’t work, it will be because you have an older
  3645. version of System Delta Plus. Send the original SDP disc back to Minerva
  3646. and ask for an up-grade.
  3647. 2.1
  3648. •   Mounting problems (sic) − Do you find that sometimes it refuses to
  3649. respond to a *MOUNT command even if you take the disc out and put it
  3650. back in again? Two solutions: type *BYE and then you should find that
  3651. *CAT will cause it to access the disc OR if, like me, you’ve got *MOUNT
  3652. on a function key, just do a *MOUNT with no disc in the drive then
  3653. *MOUNT with the new disc in place. If you are in First Word Plus where
  3654. you cannot issue star commands anyway, the latter technique should do
  3655. the trick since you can achieve the equivalent of *MOUNT by clicking on
  3656. the close box (the X) in the file menu. (Just as a matter of interest,
  3657. does anyone know why it gets into this state sometimes?)
  3658. 2.1
  3659. •   Users of C (and other compiled languages) may find the following
  3660. command file useful, as sent in by Peter Linstead. You can put it in the
  3661. $ directory of your hard disc and use it when starting a C programming
  3662. session. Once you have assigned your current program’s name to NAME
  3663. using, for example, *SET NAME MYPROG you can edit the source file by
  3664. pressing <f1>. Once out of TWIN, <f2> will compile and link the source
  3665. code and <f3> will execute the run code. By using SETMACRO, you can
  3666. change the working name with another *SET command without running the
  3667. command file again. It assumes that both FPE and TWIN are in the
  3668. $.Library.
  3669. 2.1
  3670. *| > $.Library .C
  3671. 2.1
  3672. *FPE
  3673. 2.1
  3674. *DIR $.ARM.BENCH
  3675. 2.1
  3676. *SETMACRO ALIAS$AUTOT *TWIN
  3677. 2.1
  3678.  C.<NAME> |M
  3679. 2.1
  3680. *SETMACRO ALIAS$AUTOC *CC <NAME>
  3681. 2.1
  3682.  − LINK |M
  3683. 2.1
  3684. *SETMACRO ALIAS$AUTOR *RUN
  3685. 2.1
  3686. P.<NAME> |M
  3687. 2.1
  3688. *KEY 1 *AUTOT|M
  3689. 2.1
  3690. *KEY 2 *AUTOC|M
  3691. 2.1
  3692. *KEY 3 *AUTOR|M
  3693. 2.1
  3694. *SET RUN$PATH ,%.,$.ARM.LIBRARY.,@.P.
  3695. 2.1
  3696. *GOS
  3697. 2.1
  3698. (I have just reproduced this from Peter’s hand-written letter and I
  3699. haven’t got C to try it out on, so I hope I’ve transcribed it correctly.
  3700. If it hadn’t been for the postal strike I’d have sent it to David Wild
  3701. first, so please bear with us if you find it is not completely correct.
  3702. Ed.)
  3703. 2.1
  3704. •   ANSI C Compiler − Mike Sherratt writesÉ “On a very fundamental noteÉ
  3705. The manual is very terse. To compile the demo programs on the distribu
  3706. tion diskette − Balls64, Sieve and Hello, heed the ReadMe file where it
  3707. says ‘RMLoad the FP emulator etc i.e. RMload fpe240’. Get to the
  3708. directory level ‘Bench’ then do:
  3709. 2.1
  3710. *CC −Arthur Sieve
  3711. 2.1
  3712. The spaces are significant, ‘−’ is minus. The Sieve source file is in
  3713. sub-directory ‘c’. The executable file is now in sub-directory ‘p’.
  3714. 2.1
  3715. The program can be run from the star prompt by typing *Sieve. The ‘c.’
  3716. prefix is embedded (for lack of a better word) in the compiler, so don’t
  3717. try to create the prefix!! You are now on the way.
  3718. 2.1
  3719. This information came thanks to Watford Elec-tronics who used Acorn’s
  3720. dealer hot-line for me.“
  3721. 2.1
  3722. (Because of the postal strike, this has been inserted by the Ed rather
  3723. than sending it to David for checking, so hopefully it will be OK!?)
  3724. 2.1
  3725. •   Formatting from programs − If you want to write a disc copier
  3726. program, as we at Archive obviously did for copying the program discs,
  3727. you have to find some way to get round the fact that *FORMAT asks for a
  3728. keyboard confirmation. We did it by creating a file on the second drive
  3729. that consisted of just <Y> and then called that is input from the
  3730. program. Ingenious! But then we found the easy (undocumented) way of
  3731. doing it:
  3732. 2.1
  3733. *FORMAT 0 D Y
  3734. 2.1
  3735. Simple if you know how!
  3736. 2.1
  3737. •   Replacement 3.5“ disc drives − One reader had to replace his 3.5”
  3738. drive and Acorn could only offer him the official second disc drive up-
  3739. grade (which includes a new front facia which he didn’t need) so he
  3740. bought an un-cased 3.5“ drive from Matmos Ltd (1 Church Street,
  3741. Cuckfield, W.Sussex, RH17 5JZ, 0444−414484) for £59.50 + £3 carriage +
  3742. VAT. This drive was almost a direct fit and only required some judicious
  3743. filing of the button slot to complete the replacement.
  3744. 2.1
  3745. •   Debugging ARM code listings − It is sometimes useful for non-ARM
  3746. code specialists who want to type in ARM code program listings to have
  3747. ‘wayside pointers’ as the code runs to help them debug the program and
  3748. find out where they have made typing errors. Adding the occasional SWI
  3749. &1nn (where nn is 30 to 39 for number 0 to 9) will print out these
  3750. numbers as an indication of how far the program has got. (Better still,
  3751. buy the monthly program disc!!! Ed.)
  3752. 2.1
  3753.  
  3754.  
  3755.  
  3756. •   Mannisman Tally printers with serial interface − Pin connections
  3757. are: pins 1, 4 and 6 linked together on the Archimedes, pin 3 to pin 3
  3758. on the printer, pin 5 to pin 7 on the printer and pin 8 to both pins 11
  3759. and 19 on the printer.
  3760. 2.2
  3761. •   SWI “XOS...” − If you are using SWI “XOS...” commands so that you
  3762. can handle your own errors, it will fail if you try to return
  3763. immediately after this command to the calling routine. A dummy instruc
  3764. tion needs to be inserted before the LDMFD instruction. Presumably a
  3765. ‘feature’ of OS 1.2.
  3766. 2.2
  3767. •   Problems with *Memory and *MemoryI − If you try to use these two
  3768. commands in the debugger with the aim of dumping to printer, you will
  3769. find that codes above &7F are not weeded out − they are all sent to the
  3770. printer regardless which can cause all sorts of problems. The following
  3771. program patch will solve the problem.
  3772. 2.2
  3773.  10 REM> DEBUGPCH
  3774. 2.2
  3775.  20 REM (C) JW^2 4th OCTOBER 1988
  3776. 2.2
  3777.  30 DIM A% &270C
  3778. 2.2
  3779.  40 OSCLI“SAVE Debugged_D 38486A0
  3780. 2.2
  3781.  +270C“
  3782. 2.2
  3783.  50 OSCLI“LOAD Debugged_D ”+STR$~A%
  3784. 2.2
  3785.  60 FOR F=0 TO 3 STEP 3
  3786. 2.2
  3787.  70   P%=A%+&2230
  3788. 2.2
  3789.  80   [
  3790. 2.2
  3791.  90   OPT F
  3792. 2.2
  3793. 100   STMDB R13!,{r0-r9 ,R14}
  3794. 2.2
  3795. 110   .LOOP
  3796. 2.2
  3797. 120   LDRB  R0,[R9],#1
  3798. 2.2
  3799. 130   CMP   R0,#&7F
  3800. 2.2
  3801. 140   MOVHS R0,#&2E
  3802. 2.2
  3803. 150   CMP   R0,#&1F
  3804. 2.2
  3805. 160   MOVLS R0,#&2E
  3806. 2.2
  3807. 170   SWI   “XOS_WriteC”
  3808. 2.2
  3809. 180   BVS   (LOOP+&35D)
  3810. 2.2
  3811. 190   SUBS  R2,R2,#1
  3812. 2.2
  3813. 200   BNE   LOOP
  3814. 2.2
  3815. 210   ]
  3816. 2.2
  3817. 220 NEXT
  3818. 2.2
  3819. 230 OSCLI“SAVE Debugged_D ”+STR$~A%+
  3820. 2.2
  3821. “ +270C”
  3822. 2.2
  3823. 240 OSCLI“SETTYPE Debugged_D &FFA”
  3824. 2.2
  3825. •   EDIT’s disappearing cursor − If you use ‘options’ (<shift-f3>), you
  3826. can change to a non-flashing cursor which is visible all the time, and
  3827. you don’t have to change it each time you switch on the machine because
  3828. EDIT stores its options in cmos ram. (Anyone know if there’s a way to
  3829. re-program it to change the colour of the cursor?)
  3830. 2.2
  3831. •   Putting sound through the monitor − It is perfectly possible to put
  3832. the sound output from the 3.5mm stereo jack socket on the Archimedes
  3833. through the amplifiers and speaker(s) of both the standard Acorn colour
  3834. monitor and also the Phillips CM8833. All you need is a piece of twin
  3835. screened cable (though actually I used ordinary thin three core mains
  3836. flex which is OK for such a short length) and a 3.5 mm stereo jack plug
  3837. (RS Components 274−284, £1.19 for two). The SCART plug connections are
  3838. that pin 2 is right audio, 4 is earth and 6 is left audio. The pins
  3839. should be numbered, but if not, 2, 4 and 6 are the first three pins
  3840. along the long edge of the plug starting from the rectangular end.
  3841. 2.2
  3842. Three possible problems: firstly, you may find that the SCART plug has
  3843. no pins at positions 2, 4 and 6 in which case you will have to buy a new
  3844. plug (Tandy N¼ 15−7030, £1.49 each) and re-wire the other connections.
  3845. Secondly, you may find that your cable doesn’t fit through the space
  3846. available for the cable entry in the SCART plug − in which case, some
  3847. judicious hacking of the plastic is needed. Finally, if the SCART plug
  3848. has got pins at 2, 4 and 6, you may not be able to get at them to solder
  3849. onto them. The solution here is to push each of the three pins back out
  3850. through the body of the plug, solder them then push them back in again.
  3851. It sounds easy but it’s not − there are little barbs the stop the pins
  3852. being pushed out so you have to try to manipulate these and push the
  3853. pins out at the same time − OK if you have three hands!
  3854. 2.2
  3855. The result − If the kids want to play Orion at full volume, they can,
  3856. but I can turn it back down to a sensible volume when I use the system.
  3857. 2.2
  3858. •   Stereo Speakers − I recently followed the suggestion in Archive 1.2,
  3859. page 7 and purchased the amplified speakers (Model 40-1259E) from a
  3860. local Tandy store. Initially I also purchased a couple of mains adaptors
  3861. to power each unit but I found that this caused a considerable mains hum
  3862. through both speakers. Upon returning to the Tandy store, I was advised
  3863. that hum was caused by the mains adaptors not being earthed and, rather
  3864. than spending more money on earthed mains adaptors, I exchanged the
  3865. original adaptors for re-chargeable batteries which seem to work fine −
  3866. there are also fewer wires trailing around! Whilst the stereo effect is
  3867. very good, there is a problem in that there is no volume control fitted
  3868. to these speakers; the suggestion from one of the staff at Tandy was to
  3869. wire in two of their “L-Pad Speaker Level Controls”. Have any other
  3870. Archive readers tried this or come up with a different solution?
  3871. 2.2
  3872. I have found that by amending the *Configure SoundDefault middle
  3873. parameter to a lower value than 7, the volume can be reduced, this does
  3874. provide some measure of control of sound volume; these parameters can
  3875. take a value of 0 to 7 with each unit corresponding to one eighth of the
  3876. overall maximum volume (see PRM, page 537).
  3877. 2.2
  3878. •   Monitor problems (with solutions!) − Fujitsu and MAG 14C − The
  3879. problem began on the MAG with a distortion of the top few lines of the
  3880. display when in a multisync mode. The nature of this problem suggested
  3881. that the monitor took several scan lines to lock onto the composite sync
  3882. signal fed to it from the Archimedes. It was decided to feed it with
  3883. separate vertical (frame) and horizontal (line) sync signals, which
  3884. necessitated having to alter the preset links 10 and 11 within the
  3885. Archimedes. At present this involves cutting a track (Lk10) and
  3886. inserting a link (Lk11), since these links are not brought out on the
  3887. normal Molex type links. Having done this modification you need a
  3888. *Configure Sync 0 to set ‘Vertical sync only’ instead of ‘Composite
  3889. sync’ to the monitor, otherwise the display rolls (indicating lost frame
  3890. sync). This then cured the screen distortion problem but because of the
  3891. way Acorn have put Composite/Vertical sync on the green signal, it kills
  3892. the green output. With much trepidation this problem was overcome by
  3893. disabling Acorn’s implementation of this signal by cutting pin 2 of IC
  3894. 4. The result is a perfect picture.
  3895. 2.2
  3896. The Fujitsu monitor problem was much simpler and cured far easier after
  3897. the troubles with the MAG.
  3898. 2.2
  3899. Although the picture quality was very good, there was an excess of
  3900. green, even though R39 had been removed (see Archive 1.3 p8) It was
  3901. originally thought that some internal adjustment of the green gun was
  3902. needed but, with the experience of MAG monitor (and having tried it on
  3903. the modified sync signal from the green output) the link changes proved
  3904. unnecessary as the monitor worked perfectly happily with composite sync.
  3905. Again the result was a perfect picture.
  3906. 2.2
  3907. Anyone wanting further information on this modi-fication can either
  3908. contact Reg Dalton on 0742 487992 (less technical/Evenings only) or
  3909. Steve Bass (who did all the work) on 0742 708028 (Daytime) or 0742
  3910. 886622 (Evenings).
  3911. 2.2
  3912. •   Screen saving from the SCML Teletext adaptor − R L Jefferies has
  3913. worked out how to dump screens from the SCML Teletext Adaptor. (Pressing
  3914. the ‘S’ command option gives an error but SCML have not replied to his
  3915. questions about that yet.) He has utilised Robin Newman’s mode 7 to mode
  3916. 9 utility as supplied on program disc 1.10. He copied this into the
  3917. library directory on the Teletext disc and then created a mode 7 to mode
  3918. 9 screensave module using Neil Strong’s “Printkey screen dump” (issues
  3919. 1.10 p 45 and 1.11 p 7). Two lines need altering in the source program:
  3920. 2.2
  3921. line 840 should be changed to cmp r0,#83 and line 920 should be equs
  3922. “M7M9 screensave scr<file>”
  3923. 2.2
  3924. Note that you should *SETEVAL file XX before you load the “S” key module
  3925. and before executing the Teletext module. One small niggle is that Robin
  3926. Newman’s module returns with the cursor ON. Is there an easy way to get
  3927. rid of this?
  3928. 2.2
  3929. •   Bug in C − Karl Strickland writesÉ There appears to be a bug in the
  3930. fgets() function in version 1.54A (latest public release) of ANSI C. 
  3931. Instead, use the function given below and declare it using
  3932. 2.2
  3933. char *xfgets (char*,int,FILE*);
  3934. 2.2
  3935. We have to use xfgets (as opposed to fgets) because the linker gets
  3936. confused if it finds the same function declared twice.
  3937. 2.2
  3938. char* xfgets (char* a,int b,FILE *s)
  3939. 2.2
  3940. {2 .2
  3941.    int c,d;
  3942. 2.2
  3943.    *a=NULL;     /* Must include STDIO.H */
  3944. 2.2
  3945.    for (c=0;c<b;c++) {2 .2
  3946.       d=fgetc(s);
  3947. 2.2
  3948.       if (d==EOF)
  3949. 2.2
  3950.          return NULL;
  3951. 2.2
  3952.       else
  3953. 2.2
  3954.          if (d==13)
  3955. 2.2
  3956.             return a;
  3957. 2.2
  3958.          else
  3959. 2.2
  3960.             strncat(a,(char*)&d,1);
  3961. 2.2
  3962.    }
  3963. 2.2
  3964.    return a;
  3965. 2.2
  3966. }
  3967. 2.2
  3968. •   A hint for Twin from Bj¿rn Fl¿tten − When using Twin to edit large
  3969. BASIC programs you can easily run out of memory. (Twin complains by
  3970. hanging up the computer when called.) This is because of the inconveni
  3971. ent way Twin is called from BASIC. Because Twin works on ASCII files,
  3972. BASIC has to expand the current program from tokenised form to ASCII.
  3973. This copy is placed on top of the BASIC program and is maybe 20-30%
  3974. larger than the original. Then Twin is called and makes a new copy of
  3975. the program which it places on top of itself. This means that an
  3976. unnecessary lot of memory is used.
  3977. 2.2
  3978. One solution is to let Twin run from the address of PAGE. This works
  3979. because Twin is not loaded into memory before the BASIC program is
  3980. expanded. However, you will have to ensure that the BASIC program is
  3981. bigger than Twin, if not, Twin will be loaded over the expanded version
  3982. of your program.
  3983. 2.2
  3984. (This unfortunately makes the problem of Twin not releasing some vectors
  3985. worse. This means that these vectors will point into the middle of your
  3986. BASIC program after exiting from Twin. Use reset after exiting to BASIC 
  3987. and then OLD, to cure this.)
  3988. 2.2
  3989. •   Problems with (Master) EDIT − If you get rubbish when you load up
  3990. the EDIT ROM image from the BBC Master into the 6502 emulator, try
  3991. loading it with:
  3992. 2.2
  3993. *65arthur
  3994. 2.2
  3995. *GO F800
  3996. 2.2
  3997. *EDIT
  3998. 2.2
  3999. •   From Arthur to BASIC − If you are in the Arthur supervisor and you
  4000. type *Progname where Progname is a BASIC program, it will run the
  4001. program and drop you back out into the supervisor (equivalent to *BASIC
  4002. −chain Progname). However, if you *LOAD Progname, it switches to BASIC,
  4003. loads the program and gives you back control with a ‘>’ prompt −
  4004. equivalent to *BASIC −load Progname but shorter to type and certainly
  4005. easier than *BASIC followed by LOAD “Progname”. If you do a *SHOW, you
  4006. will see the filetype definitions which make sense of it all.
  4007. 2.2
  4008. •   Sprites and Sprite Commands − Paul White-horn writesÉ The Sprite
  4009. Editor on the Welcome disc does not work properly being unable to create
  4010. masked sprites (those with a transparent back-ground) or to save shades
  4011. of colour that have been set up in the various edit modes. For many
  4012. board style games this is not an insuperable difficulty and for chess
  4013. and checkers, mode 1 creates reasonably detailed sprites in red, yellow,
  4014. black and white.
  4015. 2.2
  4016. The simplest way of getting your own sprites from the Welcome disc onto
  4017. your game or program disc is to *SNEW to wipe out anything that can be
  4018. called a sprite in RAM, *SLOAD (by name or number) your sprite or sprite
  4019. file into the machine from the Welcome disc (you don’t need to be in the
  4020. Sprite Editor to do this), take out the Welcome disc, insert your game
  4021. disc, *MOUNT it and *SSAVE (name) the contents of the machine’s RAM.
  4022. Whatever sprites you have in RAM at this point will all go into a file
  4023. created and named by the *SSAVE command and will be placed on your own
  4024. disc.
  4025. 2.2
  4026. To check that they are all safely installed on your game disc *SNEW
  4027. again (to clear RAM) and *SLOAD (name) the sprite(s) you have just
  4028. *SSAVE’d on your disc. Now typing *SLIST will bring up a list of ALL the
  4029. sprites in RAM which should correspond to the ones you have just
  4030. transferred from the Welcome disc. At this point you can rename the
  4031. sprites you see listed before you but the syntax for the *SRENAME
  4032. command is not as it appears in the User Guide. Type *SRENAME (oldname)
  4033. (newname) without commas or other punctuation marks separating the two
  4034. names and without any quote marks round the names. This renames sprites
  4035. in RAM and if you want these new names preserved on your disc then they
  4036. must be *SSAVE’d collectively back to disc and you can  save them with a
  4037. different file name if you wish.
  4038. 2.2
  4039. *SDELETE (name) deletes a sprite in RAM whereas *DELETE (name) deletes a
  4040. sprite (or file of sprites) on disc. Having weeded out sprites you don’t
  4041. require with *SDELETE it is best to *SSAVE those you do need (possibly
  4042. with a new file name) and *SNEW to clear RAM before proceeding further.
  4043. This way you will not have rogue sprites lurking in RAM or in files on
  4044. your disc where they may be called by default if they have the same name
  4045. or number as the new ones.
  4046. 2.2
  4047. To create files of sprites from different sources you can use *SMERGE
  4048. which merges a sprite (or file of same) from disc with those already
  4049. installed in RAM. Those coming from disc have priority so if you have
  4050. two sprites with the same name or number, the one on the disc will
  4051. overpower its namesake in RAM. This command seems a little haphazard on
  4052. my 310 especially with sprites which are numbered and occasionally
  4053. several tries are needed to make it happen as required.
  4054. 2.2
  4055. If you intend to choose sprites during the course of your game as a
  4056. consequence of numerical operations then it is necessary to use numbers
  4057. as names so that they can be called with the VDU command. The VDU call
  4058. takes variables with a range between 0 and 255 so make sure your sprites
  4059. don’t exceed this range.
  4060. 2.2
  4061. *SINFO prints the size of the sprite workspace and *SCOPY (oldname)
  4062. (newname) copies the named sprite. *SGET picks up a portion of the
  4063. screen as a sprite but for details of this see the User Guide.
  4064. 2.2
  4065. •   EMR SoundSynth + CC ROM podule − There has been a problem of a clash
  4066. between EMR’s SoundSynth and Computer Concepts’ ROM/RAM podule in that
  4067. after using SoundSynth, the contents of the RAM filing system disap
  4068. peared! (Fortunately, I had a recent backup!) EMR have been looking into
  4069. the problem and have sorted it out. If you have had the same problem,
  4070. return your disc to EMR and they will replace it “in most cases, free of
  4071. charge”.
  4072. 2.2
  4073. •   Loading palette files − Here is a simple BASIC program to load a
  4074. “!Palette” file and set the palette up. The file format really is
  4075. simple: 3 bytes are stored for each colour − red, green and blue
  4076. respectively. This group of 3 bytes is repeated for all 20 colours saved
  4077. − logical colours 0-15, the border, and mouse colours 1-3.
  4078. 2.2
  4079.  10 REM >TestPal
  4080. 2.2
  4081.  20 REM ===> To demonstrate reading a
  4082. 2.2
  4083.  30 REM ===> Desktop !Palette file
  4084. 2.2
  4085.  40 REM By John Smith, September 1988
  4086. 2.2
  4087.  50 REM
  4088. 2.2
  4089.  60 MODE 12 :REM Any 16-colour mode
  4090. 2.2
  4091.  will do.
  4092. 2.2
  4093.  70 :
  4094. 2.2
  4095.  80 REM Put all 16 colours on screen,
  4096. 2.2
  4097.  and a 2-colour mouse pointer.
  4098. 2.2
  4099.  90 FOR x%=0 TO 15
  4100. 2.2
  4101. 100   GCOL x%
  4102. 2.2
  4103. 110   RECTANGLE FILL x%*80,0,80,1023
  4104. 2.2
  4105. 120 NEXT
  4106. 2.2
  4107. 130 MOUSE ON
  4108. 2.2
  4109. 140 *POINTER 1
  4110. 2.2
  4111. 150 PRINTTAB(0,0);“Now press a key to
  4112. 2.2
  4113.  load the ‘!Palette’ file“
  4114. 2.2
  4115. 160 dummy=GET
  4116. 2.2
  4117. 170 :
  4118. 2.2
  4119. 180 REM Now load the palette file.
  4120. 2.2
  4121. 190 handle%=OPENIN “!Palette”
  4122. 2.2
  4123. 200 REM Do “standard” colours first.
  4124. 2.2
  4125. 210 FOR loop%=0 TO 15
  4126. 2.2
  4127. 220   COLOUR loop%, BGET#handle%,
  4128. 2.2
  4129.  BGET#handle%, BGET#handle%
  4130. 2.2
  4131. 230 NEXT
  4132. 2.2
  4133. 240 :
  4134. 2.2
  4135. 250 REM Screen Border
  4136. 2.2
  4137. 260 VDU 19,0,24, BGET#handle%,
  4138. 2.2
  4139.  BGET#handle%, BGET#handle%
  4140. 2.2
  4141. 270 :
  4142. 2.2
  4143. 280 REM Mouse colour 1
  4144. 2.2
  4145. 290 MOUSE COLOUR 1, BGET#handle%,
  4146. 2.2
  4147.  BGET#handle%, BGET#handle%
  4148. 2.2
  4149. 300 MOUSE COLOUR 2, BGET#handle%,
  4150. 2.2
  4151.  BGET#handle%, BGET#handle%
  4152. 2.2
  4153. 310 MOUSE COLOUR 3, BGET#handle%,
  4154. 2.2
  4155.  BGET#handle%, BGET#handle%
  4156. 2.2
  4157. 320 CLOSE#handle%
  4158. 2.2
  4159. •   InterWord to ArcWriter − if you have InterWord files from BBC days
  4160. and want to transfer them to ArcWriter, look in the First Word Plus
  4161. hints below where the transfer to FWP is achieved by transferring first
  4162. to ArcWriter.
  4163. 2.2
  4164. •   Double-precision to BBC BASIC − following on from the floating point
  4165. BCD to BBC BASIC conversion program published in Archive 1.11, page 32,
  4166. Carl Cepurneek has done a routine which converts from the more efficient
  4167. Double-precision reals to BBC BASIC.
  4168. 2.2
  4169. 10 REM>Carl - FPU number conversion
  4170. 2.2
  4171. 20 REM BBC BASIC V to FPU memory
  4172. 2.2
  4173. 30 REM format conversions
  4174. 2.2
  4175.  40 REM Packed decimal print routine
  4176. 2.2
  4177.  50
  4178. 2.2
  4179.  60 REM Carl P.Cepurneek 26 Clyde St
  4180. 2.2
  4181.  70 REM Parkside, S.A.5063,Australia
  4182. 2.2
  4183. 100
  4184. 2.2
  4185. 110 DEFPROCcvt_s(bbc,adr) :REM from
  4186. 2.2
  4187.  BBC real at |bbc to FP at adr
  4188. 2.2
  4189. 120 LOCAL exp%,sign%,mant%
  4190. 2.2
  4191. 130 !adr=0:adr!4=0   :REM clear
  4192. 2.2
  4193. 140 IF |bbc=0:!adr=0:ENDPROC
  4194. 2.2
  4195. 150 exp%=(bbc?4)-&80 :REM get
  4196. 2.2
  4197.  adjusted exponent
  4198. 2.2
  4199. 160 IFexp%>0 exp%=exp%+126 ELSE exp%=
  4200. 2.2
  4201. 126-ABS(exp%)
  4202. 2.2
  4203. 170 !adr=!adr OR exp%<<23:REM set
  4204. 2.2
  4205.  exponent bits
  4206. 2.2
  4207. 180 sign%=!bbc AND &80000000
  4208. 2.2
  4209. :REM isolate sign bit
  4210. 2.2
  4211. 190 !adr=!adr OR sign%:REM set sign bit
  4212. 2.2
  4213. 200 mant%=!bbc AND &7FFFFFFF :REM
  4214. 2.2
  4215.  clear neg bit if set
  4216. 2.2
  4217. 210 !adr=!adr OR mant%>>>8:REM set
  4218. 2.2
  4219.  mantissa
  4220. 2.2
  4221. 220 ENDPROC
  4222. 2.2
  4223. 230
  4224. 2.2
  4225. 240 DEFPROCcvt_d(bbc,adr):REM from
  4226. 2.2
  4227.  real at address bbc
  4228. 2.2
  4229. 250 LOCAL exp%,sign%,mant%
  4230. 2.2
  4231. 260 !adr=0:adr!4=0
  4232. 2.2
  4233. 270 IF |bbc=0:!adr=0:ENDPROC
  4234. 2.2
  4235. 280 exp%=(bbc?4)-&80 :REM get
  4236. 2.2
  4237.  adjusted bbc exponent
  4238. 2.2
  4239. 290 IF exp%>0 exp%=exp%+1022 ELSE exp%
  4240. 2.2
  4241. =1022-ABS(exp%)
  4242. 2.2
  4243. 300 !adr=!adr OR exp%<<20
  4244. 2.2
  4245. 310 sign%=!bbc AND &80000000
  4246. 2.2
  4247. :REM isolate sign bit
  4248. 2.2
  4249. 320 !adr=!adr OR sign%:REM set sign bit
  4250. 2.2
  4251. 330 mant%=!bbc AND &7FFFFFFF
  4252. 2.2
  4253. :REM clear sign bit set
  4254. 2.2
  4255. 340 !adr=!adr OR mant%>>>11 :REM set
  4256. 2.2
  4257.  mantissa msbits
  4258. 2.2
  4259. 350 mant%=mant%<<21 :REM shift over
  4260. 2.2
  4261.  low bits
  4262. 2.2
  4263. 360 adr!4=adr!4 OR mant%  :REM set
  4264. 2.2
  4265.  mantissa lsbits
  4266. 2.2
  4267. 370 ENDPROC
  4268. 2.2
  4269. 380
  4270. 2.2
  4271. 390 DEFPROCcvt_e(bbc,adr):REM from
  4272. 2.2
  4273.  BBC real at |bbc
  4274. 2.2
  4275. 400 LOCAL exp%,sign%,mant%
  4276. 2.2
  4277. 410 !adr=0:adr!4=0:adr!8=0 :REM clear
  4278. 2.2
  4279.  destination
  4280. 2.2
  4281. 420 IF |bbc=0:!adr=0:ENDPROC
  4282. 2.2
  4283. 430 exp%=(bbc?4)-&80 :REM get
  4284. 2.2
  4285.  adjusted exponent
  4286. 2.2
  4287. 440 IFexp%>0 exp%=exp%+16382 ELSE
  4288. 2.2
  4289.  exp%=16382-ABS(exp%)
  4290. 2.2
  4291. 450 !adr=!adr OR exp%  :REM set
  4292. 2.2
  4293.  exponent bits
  4294. 2.2
  4295. 460 sign%=!bbc AND &80000000  
  4296. 2.2
  4297. :REM isolate sign bit
  4298. 2.2
  4299. 470 !adr=!adr OR sign%:REM set sign bit
  4300. 2.2
  4301. 480 mant%=!bbc OR &80000000  :REM set
  4302. 2.2
  4303.  top bit (J)
  4304. 2.2
  4305. 490 adr!4=adr!4 OR mant% :REM set
  4306. 2.2
  4307.  mantissa
  4308. 2.2
  4309. 500 ENDPROC
  4310. 2.2
  4311. 510
  4312. 2.2
  4313. 520 DEFFNprint_packed(base%)
  4314. 2.2
  4315. 530 LOCAL ms%,ms$,es%,es$,m%,s%
  4316. 2.2
  4317. 540 @%=&00001
  4318. 2.2
  4319. 550 m%=(!base% AND &80000000)>>>31
  4320. 2.2
  4321. 560 IF m%=0 ms$=“+” ELSE ms$=“-”
  4322. 2.2
  4323. 570 PRINT ms$;
  4324. 2.2
  4325. 580 m%=(!base% AND &F<<8) >>>8
  4326. 2.2
  4327. 590 PRINT m%;“.”;
  4328. 2.2
  4329. 600 FOR s%=4 TO 0 STEP -4
  4330. 2.2
  4331. 610   m%=(!base% AND &F<<s%) >>>s%
  4332. 2.2
  4333. 620   PRINT m%;
  4334. 2.2
  4335. 630 NEXT
  4336. 2.2
  4337. 640 FOR w%=4 TO 8 STEP 4
  4338. 2.2
  4339. 650   FOR s%=28 TO 0 STEP -4
  4340. 2.2
  4341. 660     m%=(w%!base% AND &F<<s%) >>>s%
  4342. 2.2
  4343. 670     PRINT m%;
  4344. 2.2
  4345. 680   NEXT
  4346. 2.2
  4347. 690 NEXT
  4348. 2.2
  4349. 700 e%=(!base% AND &40000000)>>>30
  4350. 2.2
  4351. 710 IF e%=0 es$=“+” ELSE es$=“-”
  4352. 2.2
  4353. 720 PRINT“ E”;es$;
  4354. 2.2
  4355. 730 FOR s%=24 TO 12 STEP -4
  4356. 2.2
  4357. 740   m%=(!base% AND &F<<s%) >>>s%
  4358. 2.2
  4359. 750   PRINT m%;
  4360. 2.2
  4361. 760 NEXT
  4362. 2.2
  4363. 770 =“”
  4364. 2.2
  4365. •   Using 40-track drives − If you have a 40 track 5.25“ drive as used
  4366. on PC clones, you can use it under the PC emulator but, in native
  4367. Archimedes ADFS modes you will have problems. To get round it, format
  4368. the disc as normal then, when it goes beyond “Formatting 40” and starts
  4369. clicking as it reaches the end of the travel on the head movement, press
  4370. <ctrl-break>. The disc is now formatted, but the free space map and
  4371. catalogue have not been installed. This can be done with:
  4372. 2.2
  4373. DIM buffer% 3072
  4374. 2.2
  4375. SYS“ADFS_DiscOp”,,1,0,buffer%,3072
  4376. 2.2
  4377. SYS“ADFS_DiscOp”,,2,1,buffer%,3072
  4378. 2.2
  4379. You try this entirely at your own risk! Ed.
  4380. 2.2
  4381. •   Problems with ON ERROR LOCAL − John Smith says he thinks he’s
  4382. discovered a problem when using LOCAL ERROR with ON ERROR LOCAL. It
  4383. occurs because ON ERROR LOCAL stores the exact position in the program
  4384. structure. The User Guide mentions this with respect to REPEAT...UNTIL
  4385. and WHILE...ENDWHILE loops, but it also seems to apply to IF..THEN...
  4386. ELSE...ENDIF constructs. Once the error handler has done its job,
  4387. processing must continue at the same part in the structure in which the
  4388. original error happened. For example,
  4389. 2.2
  4390. 1000 DEF PROCtest(arg)
  4391. 2.2
  4392. 1010 LOCAL ERROR
  4393. 2.2
  4394. 1020 ON ERROR LOCAL PRINT “Can’t
  4395. 2.2
  4396.  divide by zero − try again“
  4397. 2.2
  4398. 1030 IF arg < 100 THEN
  4399. 2.2
  4400. 1040 INPUT value
  4401. 2.2
  4402. 1050 PRINT arg/value
  4403. 2.2
  4404. 1060 ENDIF
  4405. 2.2
  4406. 1070 ENDPROC
  4407. 2.2
  4408. If a value of zero is input, line 1050 will error. As written, the above
  4409. code will then print a warning message and effectively execute a “GOTO
  4410. 1030”. At this point, the error handler stack is corrupted. The program
  4411. may appear to work without problem, but if any future error should
  4412. occur, the program may produce a run-time error something like “Attempt
  4413. to exit from badly nested error handler” or something similar. Occasion
  4414. ally, I have even managed to produce the dreaded “Address Exception
  4415. error”!
  4416. 2.2
  4417. The solution to this problem is quite simple − place the code that could
  4418. error together with the relevant error handler in a separate PROCedure.
  4419. I have not (yet) had any problems doing this:
  4420. 2.2
  4421. 1000 DEF PROCtest(arg)
  4422. 2.2
  4423. 1030 IF arg < 100 THEN
  4424. 2.2
  4425. 1050 PROCprint(arg)
  4426. 2.2
  4427. 1060 ENDIF
  4428. 2.2
  4429. 1070 ENDPROC
  4430. 2.2
  4431. 2000 DEF PROCprint(arg)
  4432. 2.2
  4433. 2010 LOCAL ERROR
  4434. 2.2
  4435. 2020 ON ERROR LOCAL PRINT “Can’t
  4436. 2.2
  4437.  divide by zero − try again“
  4438. 2.2
  4439. 2040 INPUT value
  4440. 2.2
  4441. 2050 PRINT arg/value
  4442. 2.2
  4443. 2060 ENDPROC
  4444. 2.2
  4445. First Word Plus Hints & Tips
  4446. 2.2
  4447. Here are a few of the many contributions we’ve been sent about First
  4448. Word Plus. We’ve got a file of about ten other contributions, so we do
  4449. need someone who knows FWP, has a reasonable skill at writing and has a
  4450. bit of spare time to field the enquiries, assimilate the hints and tips
  4451. and regurgitate something to us each month.
  4452. 2.2
  4453. •   First Word Plus startup − If you are getting fed up of starting
  4454. First Word Plus and finding yourself in lower case, you could *Configure
  4455. Nocaps, but that is a nuisance if you do programming and want to start
  4456. up in Shiftcaps. The solution is to extend the boot file, adding
  4457. *FX202,48.
  4458. 2.2
  4459. •   LQ850 with sheetfeeder − If you’re having problems with this
  4460. combination, Acorn say that you should edit the printer driver so that
  4461. entry 4 (vertical tab) is commented out by pre-fixing it with a “*”.
  4462. Also, note that if your printer is doing auto-linefeeds, you should also
  4463. edit option 1 to remove the line feed value (A) from the line to leave
  4464. just the carriage return (D).
  4465. 2.2
  4466. •   Star LC10 − (ref. the Help enquiry we had last month) David Francis
  4467. says he uses the Epson FX driver successfully with this printer. He has
  4468. the dip switches set as follows: 1-1 to 1-8 and 2-1 and 2-4 are all ON
  4469. and 2-2 and 2-3 are OFF. The Archimedes is configured to IGNORE 0. With
  4470. this setting, the printer prints out the test, including the graphics
  4471. part. As set, it also prints under <ctrl-B> as well as with Artisan.
  4472. He’s also tried to change the hex file to get it to work with quadruple
  4473. size, but hasn’t succeeded yet.
  4474. 2.2
  4475. •   Printer drivers − In designing my own printer drivers for both the
  4476. Citizen 120D and Star LC-10 printers, I have not come across the problem
  4477. noted, but mine were modified from the Epson LX printer driver. There
  4478. was an item on the Letters section (page 128) of October’s issue of the
  4479. Micro User referring to an apparently similar problem, which the writer
  4480. cured by “commenting out” line &20 of the printer driver. I must admit
  4481. that I cannot understand why this should have any effect, but in case it
  4482. benefits other Archive readers, I detail below those elements of the
  4483. printer drivers I have set up relating to form or line feeds (refer also
  4484. to page 227 of the First Word Plus manual):
  4485. 2.2
  4486. 1D, A − Linefeed (N.B. carriage return & linefeed)
  4487. 2.2
  4488. 1E, C − Formfeed (N.B. &C = 12 as mentioned in the article)
  4489. 2.2
  4490. 1F, 12 − Horizontal initialisation (N.B. appears to cancel condensed)
  4491. 2.2
  4492. 20, 1B, 52, 0 − Vertical initialisation (N.B. appears to select USA
  4493. characters)
  4494. 2.2
  4495. A further possible cause of problems may be to do with the printer’s dip
  4496. switches, on page 218 of the First Word Plus manual it does state that:
  4497. 2.2
  4498. Skip over perforation must be DISABLED and Auto linefeed must be
  4499. DISABLED
  4500. 2.2
  4501. •   Printer Drivers with extended characters − Ted Peat has sent in
  4502. various bits for FWP which we’ve put on the program disc.
  4503. 2.2
  4504. The printer drivers were written to permit both the Panasonic KXP-1081
  4505. and the Diablo-ecs printer to access the same set of extended characters
  4506. (those with codes from 160 to 255). The character set of the Archimedes
  4507. is also modified to suit.
  4508. 2.2
  4509. The Diablo-ecs printers use a daisy wheel with a double row of charac
  4510. ters, giving 192 in all. The usual ASCII set is supplemented by
  4511. characters with codes >128. The description given here applies to the
  4512. ‘scientific’ wheel containing Greek and mathematical symbols. The KXP-
  4513. 1081 can be switched to emulate the IBM Graphics set, which also
  4514. includes some Greek letters and some (but not all) useful mathematical
  4515. symbols, again with codes >128. There are also some table-drawing
  4516. symbols which are replicated several times over, and accented characters
  4517. not needed for this application. Since up to 40 user-defined characters
  4518. are possible, these redundant characters can be replaced. This then
  4519. offers the opportunity to produce matched sets of symbols for the two
  4520. printers and the Archimedes.
  4521. 2.2
  4522. I decided to include the complete Greek alphabet, which involves
  4523. duplication of some upper case letters, and (for the KXP-1081 only), one
  4524. set of table-drawing symbols. Two other symbols were added: an overline
  4525. and backspace. Backspace is entered into the text as a large leftward
  4526. pointing arrow-head (stored as character 161), but interpreted by the
  4527. printer as a true backspace. One consequence of this, of course, is that
  4528. text loses its WYSIWYG property. The advantage, however, is that both
  4529. superscripts and subscripts can be attached to the same symbol, and the
  4530. overline can be used to write a bar above a character. Since these
  4531. peculiar needs are only likely within equations, the loss of on-screen
  4532. text formatting is a minor irritation. Another complication was that the
  4533. Diablo lost its left margin alignment after a backspace, when printing
  4534. in the reverse direction. This option had to be switched off, slowing
  4535. the printer down.
  4536. 2.2
  4537. There were two options for changing the Archi-medes character set. One
  4538. was to change the Archi-medes font, to match that desired as far as
  4539. possible, and then to redefine characters for the few changes needed.
  4540. The most useful character set is that described as BFONT on p. 458 of
  4541. the User Guide. To access this you need to *Configure Country Master.
  4542. The second way: which is the one I adopted was to redefine all charac
  4543. ters from 160 to 255. To do this I added a section to the 1st Word +
  4544. loading program (Library.1stWord+ on the program disc).
  4545. 2.2
  4546. Once this was done, mapping the new character set to the Diablo’s set
  4547. was easy: merely rewrite one of the provided Diablo Printer Drivers (in
  4548. the hex dir-ectory) by changing the character translation table which
  4549. forms the last part of the printer driver text.
  4550. 2.2
  4551. The KXP-1081 offered more complications. Firstly, it is necessary to
  4552. download the redefined character set before loading 1stWordPlus. Another
  4553. addition to the loader program, together with a user prompt, took care
  4554. of this. Secondly, switching this printer to its IBM Graphics mode
  4555. caused comp-lications with graphics printing: all the linefeeds became
  4556. doubled! The printer driver codes were therefore expanded so that for
  4557. each character the printer was switched into IBM Graphics set, the
  4558. character printed, and then switched back to the Epson mode. This sends
  4559. seven characters to the printer for every one actually printed. Since
  4560. these are only occasional characters, the loss of efficiency is not
  4561. important
  4562. 2.2
  4563. •   Printer Driver Generator − John Smith has sent in, not another
  4564. printer driver, but a printer driver generator program. He’s given it to
  4565. be used as public domain software, so we have put it on Shareware disc
  4566. number 2. For best results, copy the PDG program onto a copy of the 1st
  4567. Word Plus Utilities disk before running it.
  4568. 2.2
  4569. •   Tabs and underlining − This one is for dum-dums like me, writes
  4570. David Crofts, who learn word-processing at the finger tip.
  4571. 2.2
  4572. Underlining − I spent many happy, but frustrating, hours fiddling with
  4573. forms to try to sort out under-lining in intervening spaces, till I
  4574. discovered that the hated TAB holds the key! (I expect this is obvious
  4575. for lots of people, but hold on to the yawns.) I was used to VIEW where
  4576. the TAB key worked “prop-erly”. (It inserted a TAB character, whatever
  4577. that was, but it meant that a change in ruler meant a change in layout.)
  4578. In FWP the Indent key does this job, except that it puts in a special
  4579. stretch space which is fixed in spite of further ruler alterations.
  4580. Because of this I had ignored TAB as useless.
  4581. 2.2
  4582. TAB inserts a set of normal spaces which have to be deleted individually
  4583. − a nuisance if you are experi-menting with documents. But − you can
  4584. underline TAB spaces, whereas you can’t underline Indents! And therein
  4585. lies the hint!
  4586. 2.2
  4587. By all means use indents to facilitate experi-mentation but, in the end,
  4588. TABs are preferable, where you wish subsequently to underline. If you
  4589. have used Indents, then all is not lost, though fiddle is the name of
  4590. the game. Turn off Insert, and turn on Underline (f2), then fill in the
  4591. spaces with Fixed Space (f10). Then use the mouse or keyboard to
  4592. underline the words.
  4593. 2.2
  4594. e.g. Say you have a form, the head of which is:
  4595. 2.2
  4596. Name   Address   Telephone
  4597. 2.2
  4598. the above is the result using Indent, but using TAB you will achieve:
  4599. 2.2
  4600. NameÊÊÊÊÊÊAddressÊÊÊÊÊÊTelephoneÊÊÊÊÊ
  4601. 2.2
  4602. Placing a TAB at the appropriate point near the end of the ruler allows
  4603. the line to be printed to the same length on each line.
  4604. 2.2
  4605. •   InterWord to FWP via ArcWriter − This is how Ian Barnes achieves the
  4606. transfer:
  4607. 2.2
  4608.    1.   Transfer file from IW to AW_DOC directory
  4609. 2.2
  4610.    2.   Run ArcWriter
  4611. 2.2
  4612.    3.   Press <select> for filing menu
  4613. 2.2
  4614.    4.   Highlight file x
  4615. 2.2
  4616.    5.   Press <menu>, select import, flowing, return
  4617. 2.2
  4618.    6.   Press <select> for filing menu
  4619. 2.2
  4620.    7.   Press <menu> and select export plus new name
  4621. 2.2
  4622.    8.   Transfer file to 1WP.doc directory
  4623. 2.2
  4624.    9.   Run 1WP and open file
  4625. 2.2
  4626.    10.   Select WPmode from edit menu
  4627. 2.2
  4628.    11.   Tidy up text by deleting control characters, changing any odd
  4629. letters and inserting returns at line ends to leave a presentable result
  4630. 2.2
  4631. •   Files from ArcWriter − The article by Brian Carroll in July’s issue
  4632. of Archive under the heading of “First Word Plus Notes” (pages 21-23)
  4633. was very useful together with the program ConvertWP (also on that
  4634. month’s Magazine disc). Although designed to convert Wordwise Plus
  4635. files, the program works quite well with ArcWriter as well. Briefly the
  4636. procedure to convert ArcWriter files into First Word Plus is as follows:
  4637. 2.2
  4638. 1. From the ‘Filing’ menu in ArcWriter select the ‘Export’ option to
  4639. save the file (e.g. under the name “testARC”) and then exit from
  4640. ArcWriter.
  4641. 2.2
  4642. 2. Load the ConvertWP program and enter the appropriate Source
  4643. (“testARC”) and Destination (e.g. “test1WP”) filenames.
  4644. 2.2
  4645. 3. Load First Word Plus and then the converted file (“test1WP”).
  4646. 2.2
  4647. 4. Select ‘WPmode on’ from the Edit menu.
  4648. 2.2
  4649. 5. Reformat the whole text by using the Style menu to ‘Reformat’ the
  4650. ‘Whole document’.
  4651. 2.2
  4652. Odd words may sometimes get missed out of the converted text, possibly
  4653. due to the fact that this data was preceded by “tabs” in ArcWriter.
  4654. 2.2
  4655.  
  4656. •   Fontsize problems? (Ed. got caught out on this one) With Clares’
  4657. Sound and Graphics demo, when you start it up, it says it needs 44k of
  4658. fontsize, so I tried to re-configure with fontsize 6 on the basis that 6
  4659. times 8k = 48k. Now, as I’m sure you will all realise, that didn’t work
  4660. because fontsize is specified in 4k chunks, not 8k or 32k.
  4661. •   Logotron printer dump − Logotron told one of our readers that there
  4662. is no printer dump for their Archimedes Logo. However, our Printkey Dump
  4663. program (issue 1.10, page 45) works fine.
  4664. •   RX80 dumps for Artisan − Clares originally said that Artisan
  4665. wouldn’t dump pictures on an Epson RX-80 and that the FX-80 was the
  4666. ‘base-line’ printer as far as they were concerned. How-ever, they have
  4667. since produced a ‘help-sheet’ of the pokes needed to convert the dump to
  4668. an RX-80.
  4669. 2.3
  4670. The gist of the change is as follows;
  4671. 2.3
  4672. If your printer will support CRT mode graphics, (ESC “*”,4) then use it.
  4673. If not then use ESC “K” for normal single density bit image mode, but
  4674. CRT mode gives a much better image and less distortion.
  4675. 2.3
  4676. *LOAD ART6 10000
  4677. 2.3
  4678. !&10EC5=&042A1B for CRT or =&4B1B00 for single density
  4679. 2.3
  4680. *SAVE ART6 10000 +12FF
  4681. 2.3
  4682. *SETTYPE ART6 &FF8
  4683. 2.3
  4684. The resultant print produces oval circles(!) but can be triggered from
  4685. Artisan.
  4686. 2.3
  4687. •   Monochrome displays on the 440 − Brian Cowan writes, I was lucky
  4688. enough to have one of the first release of 440’s which I used with one
  4689. of the Acorn colour monitors. I know that the resolution of these
  4690. monitors is nothing fantastic, but it seemed sensible to purchase them
  4691. together; at that stage I was not sure what connection standards were
  4692. used.
  4693. 2.3
  4694. About six months later I had reason to use an ordinary mono monitor on
  4695. the 440, and imagine my horror when I found it did not work. Ordinarily
  4696. I would have sent the computer back to the supplier to have it fixed
  4697. under warranty. However, the machine was in constant use so we decided
  4698. to live with it, using only a colour monitor.
  4699. 2.3
  4700. I now discover that there is nothing wrong with the 440!! When these
  4701. machines leave the factory they are not configured to drive standard
  4702. resolution mono monitors, they are set up for high res monitors. Inside
  4703. the case, on the PCB are some jumpers that must be set according to what
  4704. sort of monochrome monitor you want to drive.
  4705. 2.3
  4706. At the north-west corner of the board is a plug called PL2. I think this
  4707. does nothing except carry some pin connector links. A little further
  4708. southwards on the board are some pins labeled LK13 and LK14. If you want
  4709. to drive a standard resolution monochrome monitor, you must take two
  4710. links from PL2 and place one on LK13 and the other on LK14.
  4711. 2.3
  4712. Connection to a monochrome monitor on 440 machines is through two BNC
  4713. sockets on the back panel. One socket is marked SYNC and the other is
  4714. labeled MONO. For high resolution, both of these are used but for
  4715. standard resolution only the SYNC socket is used. Since this is a BNC
  4716. socket rather than the phono socket on the 300 series, you will have to
  4717. make up or purchase a special lead or a converter.
  4718. 2.3
  4719. For those of you contemplating the purchase of a multisync monitor for
  4720. those extra modes etc. you will be happy to hear that the Archimedes
  4721. connect-ions are the same as those on PC machines. This means that if
  4722. the monitor comes with a lead, it will probably be suitable for the
  4723. Archimedes. This is certainly true for the Taxans that I use. Inciden
  4724. tally, concerning the Taxans, some have rather dull pictures. Has anyone
  4725. tried brightening them up?
  4726. 2.3
  4727. •   Desktop calculator − “The calculator on my desktop doesn’t respond
  4728. to the keyboard whereas your review of Arthur 1.2 said it did.” So I
  4729. tried to work the calculator with the keyboard keys myself and it didn’t
  4730. seem to work. Then I realised that it won’t respond until you enable it
  4731. for keyboard input by clicking on it with the mouse. The top bar then
  4732. goes red and it’s ready to take input from either the main keyboard or
  4733. the numeric pad, delete being the equivalent of clear. Easy when you
  4734. know how.
  4735. 2.3
  4736. •   Conditional booting. If you have a boot file in the RFS on battery-
  4737. backed RAM, you may want to do some things when you first switch on but
  4738. not every time you do <ctrl-break>. You can achieve this by making it
  4739. conditional on the monotonic timer, i.e. the timer which is initialised
  4740. at switch-on and not reset in any other way. To read this timer, use SYS
  4741. &42 TO T% where T% then gives the time in centiseconds so you can say
  4742. that IF T%<200 (say) then do the switch-on bits and pieces ELSE do the
  4743. <ctrl-break> things.
  4744. 2.3
  4745. •   CharDes fonts − If you have fonts produced by CharDes, you can
  4746. convert them for use on the Archimedes as follows. Enter 65Arthur and
  4747. type
  4748. 2.3
  4749. *spool thin2
  4750. 2.3
  4751. *thin
  4752. 2.3
  4753. *spool
  4754. 2.3
  4755. where thin is the name of the original font file and thin2 is going to
  4756. be the new file. Then use a text editor (such as the Master128’s “Edit”)
  4757. and edit out the first and last line (i.e. the *thin and *spool). Then
  4758. resave as thin2 and settype it as &FF7 (BBC font). When you need it,
  4759. just type *thin2. If you do a *SHOW, you will see that the load and run
  4760. actions of a file type &FF7 is to *PRINT it − which is just what you
  4761. want.
  4762. 2.3
  4763. •   Command files − In order to disable vdu output during a command file
  4764. e.g. the !boot file, try:
  4765. 2.3
  4766. *echo ||U
  4767. 2.3
  4768. ...
  4769. 2.3
  4770. ...
  4771. 2.3
  4772. *echo ||F
  4773. 2.3
  4774. Two string escape characters are needed (as I’ve explained in a previous
  4775. tip) so that the final command executed is *echo |U
  4776. 2.3
  4777. i.e. <ctrl-U>. This issues a VDU 21 which disables vdu output until a
  4778. VDU 6 is issued <ctrl-F>.
  4779. 2.3
  4780. This is similar to the ECHO OFF command of MS-DOS. Indeed if the string
  4781. used is:
  4782. 2.3
  4783. *echo ||U|H|Hoff
  4784. 2.3
  4785. then all that is visible is “echo off” which explains why nothing else
  4786. is visible to the user and also hides the control code sequence used.
  4787. The “compiled” string is then *echo |U<8><8>off. One side effect is that
  4788. two line feeds will occur so if this is undesirable a couple of reverse
  4789. line feeds can be incorporated with
  4790. 2.3
  4791. *echo ||U|H|Hoff|K|K
  4792. 2.3
  4793. Note that the use of single string escape characters means that the
  4794. cursor control codes will have immediate effect whereas the <ctrl-U>
  4795. will only be issued when the echo command is executed.
  4796. 2.3
  4797. The double string escape characters are only needed for use with *Build,
  4798. if a text editor is used then only single characters are needed but the
  4799. control codes must be input directly, e.g. so they appear as inverse
  4800. video in TWIN, for those cases where the affect is immediate.
  4801. 2.3
  4802. (Sorry if this sounds a bit confusing but the difference between two and
  4803. one |’s, and when to use which, is an entire discussion point on its
  4804. own. Perhaps this could be a short article − it is important whenever
  4805. command files issue messages etc.) Clifford Hoggarth.
  4806. 2.3
  4807. •   Quick *COPYing and *WIPEing − When you enter a wild card *COPY or
  4808. *WIPE on a list of files such as TEST1, TEST2, TEST3, etc. you are
  4809. presented with a list of options at the end of the copy or wipe
  4810. statement
  4811. 2.3
  4812. *COPY :0.TEST* :1.TEST*
  4813. 2.3
  4814. Copy file adfs::0.TEST1 as adfs::1.
  4815. 2.3
  4816. TEST1 (Y/N/Q/A)?
  4817. 2.3
  4818. etc.
  4819. 2.3
  4820. The option Y, N, Q and A mean the following :-
  4821. 2.3
  4822. Y − means copy that file
  4823. 2.3
  4824. N − means don’t copy that file
  4825. 2.3
  4826. Q − means quick copy all file with the wild card specification after and
  4827. including that one with no further confirmation prompts
  4828. 2.3
  4829. A − means abort from copying
  4830. 2.3
  4831. The *WIPE option works in a similar manner but deleting.
  4832. 2.3
  4833. •   Stereo Speakers − After reading the hint in Archive 1.2 about adding
  4834. a pair of Tandy amplified speakers, I promptly rushed off ‘to town’.
  4835. They had just run out of stock, because the £25 price-tag was a special
  4836. offer. However Tandy were very helpful and ordered me a pair which
  4837. arrived within a week and which at £29.95 are still excellent value.
  4838. However, a set of alkaline batteries was quoted as £7.95!! Instead, a
  4839. surplus old calculator mains adaptor and two power plugs (30p each from
  4840. a local electronics shop) provided a cheaper source of power. If you
  4841. don’t have a spare one, a new power supply from Rapid Electronics costs
  4842. less than £4. The magic moment arrived and I switched on! The buzz from
  4843. the speakers was horrific!, but soon drowned by mayhem and destruction
  4844. from Zarch, which in turn was swamped by the dulcet tones of ‘her
  4845. ladyship’ complaining from the other end of the house about the volume!
  4846. 2.3
  4847. Back to the drawing board − two capacitors, recovered from an old tape
  4848. recorder smoothed the power supply output and banished the buzz. The
  4849. solution to the lack of volume control was to add two potentiometers.
  4850. Whilst I was at it, I decided to wire the volume controls into a socket,
  4851. so that Zarch could be enjoyed at a reasonable volume late at night
  4852. through a pair of personal stereo headphones as well as through speakers
  4853. at a more civilised hour. An hour’s work, a couple of pounds and I now
  4854. have glorious stereo sound, at a reasonable volume!
  4855. 2.3
  4856. The diagrams below show the set up. A twin pot could be used instead of
  4857. two single ones, so that both speakers are controlled from one knob. Any
  4858. value pot from 100 ohms up to about 4.7k ohms will work, but 100 ohms is
  4859. ideal, though 470 ohm pots are easier to obtain. Logarithmic pots are
  4860. best, but linear ones work fine and are again are easier to obtain. The
  4861. big capacitor can be anywhere in the region shown (2500 microfarads/30V)
  4862. − the small one takes out the higher frequencies and again its value
  4863. (220 microfarads/16V) is not critical.
  4864. 2.3
  4865. It’s worth noting that the speakers cut off only after a minute or two
  4866. if there is no sound being produced. Presumably there is a small
  4867. capacitor inside which needs to run down first. Similarly, they need a
  4868. certain minimum signal for a very short time in order for them to switch
  4869. back on. David Kent
  4870. 2.3
  4871. •   Ultra-cheap sound amplification − Maplin Electronics (0702−554161)
  4872. have an amazing offer including a pair of walkman-type headphones AND a
  4873. pair of monitor speakers for just £3.95! I don’t know how good they are,
  4874. but at that price, you can’t go far wrong. (Oh, there’s a handling
  4875. charge of 50p and a postage charge of 50p − still, it’s not bad.)
  4876. 2.3
  4877. •   View “OC” Command − In View B3.0, one of the highlights can be set
  4878. to 27 instead of the normal 128 for underline and 129 for emphasise. In
  4879. doing this, commands may be made directly to the printer as in the
  4880. Wordwise OC command. For example, to set highlight 1 to 27
  4881. 2.3
  4882. <Shift-f8> HT<return> 1 27 <return>
  4883. 2.3
  4884. On pressing <f4> (underline) the next character will be sent to the
  4885. printer as a command, i.e. ShFn4x1(-x1) will turn on NLQ mode (on some
  4886. Epson compatible printers). This system seems to work for most commands,
  4887. but some commands need an ASCII ,1 so to get round this set highlight
  4888. key 2 (emphasise) as 1 and type ShFn4wShFn5 (-x*) to turn on double
  4889. height for example. This does have the disadvantage that things can’t be
  4890. turned on and off in the same line as you have to set highlight 2 back
  4891. to 0 to turn it off.
  4892. 2.3
  4893. •   Two ARM Code Assembly Macros − (Richard Averill) − Here are two
  4894. useful macros for use in the BASIC V ARM assembler. They both use the
  4895. same method of loading 32-bit words into a specified register, which is
  4896. detailed below:
  4897. 2.3
  4898. Originally, I had the idea that if I used the following piece of code:
  4899. 2.3
  4900. LDR <reg>, [PC, #-4] !
  4901. 2.3
  4902. EQUD <value>
  4903. 2.3
  4904. then the processor would load the value and jump on to the next
  4905. instruction. However, what actually happens is that the value is loaded
  4906. and the ARM tries to execute the value as an instruction. If the high-
  4907. byte of the value is zero, then this will not cause a problem, but it is
  4908. not advisable to use routines that are not totally water-tight.
  4909. 2.3
  4910. Here is the improved code:
  4911. 2.3
  4912. LDR <reg>, [PC]
  4913. 2.3
  4914. MOV PC, PC
  4915. 2.3
  4916. EQUD <value>
  4917. 2.3
  4918. which only takes one more word of code and works all the time. The MOV
  4919. PC,PC is there to make sure that the ARM executes the instruction that
  4920. is in the pipeline, and not the instruction in <value>.
  4921. 2.3
  4922. Using these ideas, I have developed two useful routines detailed below:
  4923. 2.3
  4924. DEF FNload(reg%, val%)
  4925. 2.3
  4926. [ OPT opt% AND &E
  4927. 2.3
  4928. LDR reg%, [PC]
  4929. 2.3
  4930. MOV PC, PC
  4931. 2.3
  4932. EQUD val%
  4933. 2.3
  4934. ] : =opt%
  4935. 2.3
  4936. DEF FNadr(reg%, adr%)
  4937. 2.3
  4938. [ OPT opt% AND &E
  4939. 2.3
  4940. FNload(reg%, adr%-P%-20)
  4941. 2.3
  4942. ADD reg%, PC, reg%
  4943. 2.3
  4944. ] : =opt%
  4945. 2.3
  4946. As you can see, the macros can be used as any other instruction in the
  4947. assembler as such:
  4948. 2.3
  4949. MOV R0, #123
  4950. 2.3
  4951. FNload(1, &12345678)
  4952. 2.3
  4953. FNadr(2, pointer)
  4954. 2.3
  4955. SWI “OS_Anything”
  4956. 2.3
  4957. A demonstration program is given (on the program disc) to illustrate the
  4958. use of these macros.
  4959. 2.3
  4960. •   Running ViewPlot under 65Arthur − Richard Averill − Listed here are
  4961. the changes needed to make ViewPlot ‘harness the power of the Archi
  4962. medes!’. They will tidy the programs up, allowing ViewPlot to run in any
  4963. mode and to print and save screens. A *Exec file of these changes is
  4964. provided on the monthly disc.
  4965. 2.3
  4966. To use this file, transfer the ViewPlot disc onto ADFS into a directory
  4967. such as ‘ViewPlot’. You can either create a text file of these commands
  4968. (with *Build or a text editor) or you can type the commands in yourself.
  4969. Either way, you should make sure that you are in the ViewPlot directory
  4970. when you try to convert the programs.
  4971. 2.3
  4972. *|Running ViewPlot under 65Arthur.
  4973. 2.3
  4974.  (C) Richard Averill, 1988.
  4975. 2.3
  4976. *BASIC
  4977. 2.3
  4978. LOAD “ViewPlt”
  4979. 2.3
  4980. 390
  4981. 2.3
  4982. SAVE “ViewPlt”
  4983. 2.3
  4984. LOAD “V__D”
  4985. 2.3
  4986. 730 IF M=248 OSCLI(“Screensave Image”)
  4987. 2.3
  4988. :PROC2(R%)
  4989. 2.3
  4990. SAVE “V__D”
  4991. 2.3
  4992. LOAD “V__M”
  4993. 2.3
  4994. 1140 DEF PROC0:VDU 28,0,23,39,5:CLS
  4995. 2.3
  4996. 1190 REPEAT
  4997. 2.3
  4998. 1200 INPUT “Enter screen mode (not
  4999. 2.3
  5000.  text) ? “ M%
  5001. 2.3
  5002. 1210 UNTIL FNcheckmode(M%)=TRUE
  5003. 2.3
  5004. DELETE 1220,1290
  5005. 2.3
  5006. 3000 DEF FNcheckmode(mode%)
  5007. 2.3
  5008. 3010 LOCAL col$,ok%
  5009. 2.3
  5010. 3020 ok%=FALSE
  5011. 2.3
  5012. 3030 IF mode%=0 OR mode%=8 OR mode%=12
  5013. 2.3
  5014.  OR mode%=15 OR mode%=18 OR mode%=19 OR mode%=20 THEN C%=16:ok%=TRUE
  5015. 2.3
  5016. 3040 IF mode%=1 OR mode%=4 OR mode%=9
  5017. 2.3
  5018.  OR mode%=13 THEN C%=32:ok%=TRUE
  5019. 2.3
  5020. 3050 IF mode%=2 OR mode%=5 OR mode%=10
  5021. 2.3
  5022.  THEN C%=64:ok%=TRUE
  5023. 2.3
  5024. 3060
  5025. 2.3
  5026. 3070 col$=“04”
  5027. 2.3
  5028. 3080
  5029. 2.3
  5030. 3090 IF mode%=0 OR mode%=4 OR mode%=18
  5031. 2.3
  5032.  THEN col$=“04”
  5033. 2.3
  5034. 3100 IF mode%=1 OR mode%=5 OR mode%=8
  5035. 2.3
  5036.  OR mode%=19 THEN col$=“15”
  5037. 2.3
  5038. 3110 IF mode%=2 OR mode%=9 OR mode%
  5039. 2.3
  5040. =12 OR mode%=20 OR mode%=10 OR mode%=13 OR mode%=15 THEN col$=“2”
  5041. 2.3
  5042. 3120 IF ok%=TRUE THEN OSCLI(“LOAD Col”
  5043. 2.3
  5044.  +col$+“ 2600”)
  5045. 2.3
  5046. 3130 =ok%
  5047. 2.3
  5048. SAVE “V__M”
  5049. 2.3
  5050. LOAD “V__P”
  5051. 2.3
  5052. 250DATA 0,0,0,0,0,0,2,4,4,4,2,16,8,1
  5053. 2.3
  5054. ,16,0,0,0,2,2,16,4,1,16,0,0,0,2,
  5055. 2.3
  5056. 1,16,0,0,0,0,0,0,2,8,2,2,4,4,2,
  5057. 2.3
  5058. 2,16,2,1,16,2,8,2,2,8,2
  5059. 2.3
  5060. 1740DEFPROCJ(b%):e%(b%)=0:ONM%+1GOTO
  5061. 2.3
  5062. 1770,1810,1880,1880,1770,1810,1880, 1880,1810,1880,1880,1880,1880,1880
  5063. 2.3
  5064. ,1880,1880,1880,1880,1880,1770
  5065. 2.3
  5066. ,1810,1880,1880,1770,1770
  5067. 2.3
  5068. 2070DEFPROCE:FORb%=1TO8:e%(b%)=b%?
  5069. 2.3
  5070. (&2608+((a%-1)*2+a%-10)*8-1):ONM%+1
  5071. 2.3
  5072. GOTO 2110,2150,2200,2200,2110,2150,
  5073. 2.3
  5074. 2200,2200,2150,2200,2200,2200,2200, 2200,2200,2200,2200,2200,2200,
  5075. 2.3
  5076. 2110,2150,2200,2200,2150,2150
  5077. 2.3
  5078. SAVE “V__P”
  5079. 2.3
  5080. •   Cheap colour monitors − Peter Sykes bought a Commodore 1084 monitor
  5081. which seems to be identical to the Phillips 8833 but cheaper. He got his
  5082. from Eazyprint in Staines, Middlesex for £240, around £20 less than the
  5083. cheapest he could find the Phillips 8833. (There’s an Acorn one for sale
  5084. in the small ad’s, but there must be other folk by now who are up-
  5085. grading to multi-syncs and have monitors for sale − send in your small
  5086. ad’s folks − no charge.)
  5087. 2.3
  5088. •   Use of Archimedes on Econet − Copying ADFS format discs to NET and
  5089. vice-versa, no utility is needed as Archimedes has it all built in:-
  5090. 2.3
  5091. *COPY -adfs-$.* -net-$.whatever.* QRC
  5092. 2.3
  5093. Here ADFS is the source, NET is the destination. The ‘whatever’ is the
  5094. chosen destination directory, or directory path (e.g. replace ‘whatever’
  5095. with ‘fred.mary.utils’) The * is to indicate all files. The Q indicates
  5096. QUICK copying using all available RAM. This damages resident programs
  5097. but considerabley speeds the copying process. It is also almost
  5098. essential if using early versions of the Econet Software Modules (NETFS,
  5099. ECONET) due to bugs in these which cause ‘Not Listening’ messages. Later
  5100. versions do not suffer this. The R to indicates recursive copying of
  5101. sub-directories. The C turns OFF confirmation so that copying occurs for
  5102. all files without question.
  5103. 2.3
  5104. Simple modifications to the command line allow copying in the reverse
  5105. direction.
  5106. 2.3
  5107. (This was sent in by Michael Ryan, editor of the Econet User Group
  5108. Magazine (NEUS) which carries regular articles on Archimedes on the
  5109. network (and many less esoteric matters as well). We have also been
  5110. licensed by Acorn to provide free upgrades to Econet software modules
  5111. for those unable to obtain them elsewhere. Econet User Group, Balkeerie
  5112. Cottage, Eassie by Forfar, Angus, DD8 1SR.)
  5113. 2.3
  5114. FWP Hints & Tips
  5115. 2.3
  5116. compiled by Mike Hobart
  5117. 2.3
  5118. •   Changing default drive − those of you with dual drives may want to
  5119. be able to get FWP to default to looking for data on drive 1. To do
  5120. this, all you do is load $.library.1wp and change the line that sets up
  5121. the documents directory to:
  5122. 2.3
  5123. *set FirstWordPlus$Docs :1.$.
  5124. 2.3
  5125. •   Saving to a fresh disk − If you need to save your work onto a fresh
  5126. disk, you may have difficulty in persuading the save to work: you get
  5127. silly messages about the disk being write-protected and directories not
  5128. being present. This is very frustrating if you have just written the
  5129. first chapter of your bestseller. Try “Save as...”, taking special care
  5130. either to see that you are in the correct directory as specified in the
  5131. directory box at the top of the save window or create a new file in the
  5132. root directory by clicking repeatedly on the X icon until you are left
  5133. with only a “*”. Thanks to Peter Tettmar, on whose solution is differ
  5134. ent, but less convenient as you have to anticipate the problem!
  5135. 2.3
  5136. •   Form feeds in the wrong places − Edit your printer driver (the “hex”
  5137. directory one) to inactivate the “vertical tab to line” feature. This is
  5138. done by placing a “*” at the beginning of the line (line no 4, which
  5139. should now read *4, 1B,42,80,0,B or near). If you have serious troubles
  5140. with irrational formfeeds, try setting the CONFIGURE IGNORE of the
  5141. battery-backed RAM to prevent the computer ever sending to crucial code
  5142. to the printer. (Thanks to David Adamiak and from him to GST Holdings).
  5143. 2.3
  5144. •   Use of IBM fonts − Steve Jones points out that there can be
  5145. advantages in using the IBM font set, if your printer supports it. The
  5146. monthly disk con-tains his very full instructions and programs. The main
  5147. reason for using the IBM fonts is the availability of certain symbols
  5148. for maths and graphical characters. These can be especially useful for
  5149. designing forms.
  5150. 2.3
  5151. •   Graphics problems (e.g. that white is printed grey etc.) can be
  5152. cured by preparing the graphics in 1st Word palette. For Artisan, copy
  5153. 1stword’s Resources.1wp.!palette as artisan.1wppal (or what takes your
  5154. fancy) on the Artisan disk, then boot up Artisan, grab the disk ikon and
  5155. finally select the new palette. The result is not artistic, but a quick
  5156. roller brush over the background with white, followed by the artwork in
  5157. e.g. black produces a picture you can import and have printed correctly.
  5158. The reason this works is that the graphics dump routine in 1st Word
  5159. assumes the use of the program’s own palette, or at least that it is
  5160. trying to produce a paper version of what you see on the screen. It is,
  5161. incidentally, quite an intelligent and quick dump, which checks to see
  5162. if there are pixels to print before printing a line, and issuing a
  5163. linefeed if not.
  5164. 2.3
  5165. •   Conversion from WWPlus − The following hint might be useful to
  5166. people still trying to convert WW+ file to 1WP. The convert program
  5167. published in Archive does a wonderful job. However, I found it a bit
  5168. irksome having to edit out all the ‘US’s and ‘UE’s etc which are left
  5169. after the program has dealt with the green and white embedded commands.
  5170. (This just goes to show how quickly we start to take things for
  5171. granted!!). I also found that it was impossible to reformat the text to
  5172. a new line length. The latter problem seemed to be that 1WP ended lines
  5173. with &0E, whist converted WW+ files ended with the last letter of the
  5174. last word on the line.
  5175. 2.3
  5176. The solution to both problems is as follows:
  5177. 2.3
  5178. 1   SPOOL out the WW+ file, using Option 8 (This removes all embedded
  5179. commands and centres text and produces indents and TABs)
  5180. 2.3
  5181. 2   Reload the spooled file and use Search & Replace to change all
  5182. double returns to @@ (or any other unused combination of letters)
  5183. 2.3
  5184. 3   Change all of the remaining single returns to <space>-return
  5185. 2.3
  5186. 4   Change all of the @@s (or whatever) to <space>-return-return
  5187. 2.3
  5188. 5   SAVE the modified file using Option 1
  5189. 2.3
  5190. 6   Run the SAVED file through the convert program
  5191. 2.3
  5192. The effect of 2, 3 and 4 is to save the paragraph breaks, but end all of
  5193. the lines with a space. The result is a file with no extra ‘remains’ of
  5194. embedded commands, and which will reformat correctly in First Word Plus.
  5195. 2.3
  5196.  
  5197. H & T are a bit thin on the ground this month because this issue is
  5198. being finished before Christmas so I get some time off and it’s only a
  5199. couple of weeks since I closed the December issue, so not much has come
  5200. in yet. Most of the H & T that we have got were sent in by Anton Carver.
  5201. Thanks Anton!
  5202.  
  5203. 2.4
  5204. •   Using function keys − If you want to get the function keys to
  5205. produce ASCII codes, say, 200, 201, 202 etc, you use *FX 225,200 but
  5206. this only works for keys <f0> (the print key) to <f9>. If you want to
  5207. use <f10> upwards, you need to use *FX 221,200. This also makes <insert>
  5208. into the equivalent of <f13> i.e. it generates, in this case, ASCII 213.
  5209. 2.4
  5210. •   Troubles with Mitsubishi Drives? − Yes, there are problems with some
  5211. of the new 5.25” Mitsubishi drives with some of the 5.25” disc inter
  5212. faces, but they can be solved. The problem is the use of pin 2 on the
  5213. interface. It was not used on the BBC micro, but on the new Mitsubishi
  5214. drives it is used for DC interrupt. The solution is to put a little bit
  5215. of masking tape on the edge connector inside the drive mechanism so that
  5216. it doesn’t make contact with the p.c.b. Pin 2 is on the top of the board
  5217. at the outside edge.
  5218. 2.4
  5219. •   Programmable reset − A hang-over from the BBC micro is that if you
  5220. program function key 10, you will find that if you press <reset>,
  5221. function key 10 will be executed! If you don’t know about this, it can
  5222. come as something of a shock, but it could be that you would want to
  5223. make use of it if you were, say, developing a machine code program which
  5224. kept hanging up the machine and forcing you to press <reset>. You could
  5225. program it as *KEY 10 *BASIC|MOLD|MEDIT .|M and it would jump you back
  5226. into editing the program at the point where you were.
  5227. 2.4
  5228. •   Is it still going? − If you are doing some heavy machine code
  5229. programming and want to know if the computer is still working or whether
  5230. you have locked it up completely, try pressing the caps lock and/or
  5231. scroll lock keys and if they are still responding, your computer’s not
  5232. dead yet! The caps and scroll lock LED’s are controlled by the computer
  5233. in response to the key presses, so if they are working, it tells you
  5234. that the processor is still reponding to interrupts.
  5235. 2.4
  5236. •   Using ARMBE − It is useful to be able to enter ARMBE at the point of
  5237. the last error. Here is a program which sets up function key 4 so that
  5238. it enters ARMBE at the point where the error occurred or, if no error
  5239. then it enters where you were last editing by using “EDIT .”.
  5240. 2.4
  5241. 10 *set key$edit IF ERL=0 THEN OSCLI (|“KEY 4 *FIXKEY4||mEDIT . ||m|”)
  5242. ELSE OSCLI(|“KEY 4 *FIXKE Y4||mEDIT |” + STR$(ERL) + |“||m |”)|mMISTAKE
  5243. |m*FX138,0,132|m
  5244. 2.4
  5245. 20 *set alias$fixkey4 set key$4 |<key$edit>
  5246. 2.4
  5247. 30 *fixkey4
  5248. 2.4
  5249. •   REM’s − Although the User Guide says that REM statements are ignored
  5250. by BASIC, this is not completely true in BASIC V. This is because the
  5251. block conditional IFÉTHENÉELSEÉ ENDIF requires the THEN to be the last
  5252. statement on the line. Adding a REM to the end of the line will change
  5253. the flow of control, thus:
  5254. 2.4
  5255. >LIST
  5256. 2.4
  5257.  10 OK%=TRUE
  5258. 2.4
  5259.  20 IF NOT OK% THEN
  5260. 2.4
  5261.  30   PRINT “Wrong!”
  5262. 2.4
  5263.  40 ELSE
  5264. 2.4
  5265.  50   PRINT “Right”
  5266. 2.4
  5267.  60 ENDIF
  5268. 2.4
  5269. >RUN
  5270. 2.4
  5271. Right
  5272. 2.4
  5273. >LIST
  5274. 2.4
  5275.  10 OK%=TRUE
  5276. 2.4
  5277.  20 IF NOT OK% THEN :REM Danger!
  5278. 2.4
  5279.  30   PRINT “Wrong!”
  5280. 2.4
  5281.  40 ELSE
  5282. 2.4
  5283.  50   PRINT “Right”
  5284. 2.4
  5285.  60 ENDIF
  5286. 2.4
  5287. >RUN
  5288. 2.4
  5289. Wrong!
  5290. 2.4
  5291. •   MODE3/6 gaps − There is an undocumented difference between the way
  5292. that the gaps between lines are coloured in the 25-row modes. In modes 3
  5293. and 6, the gaps are the border colour and in modes 11, 14 and 17, they
  5294. are the background colour.
  5295. 2.4
  5296. By experimenting with SWI“OS_ReadMode Variable”, I discovered that bit 3
  5297. of variable 0 (Modeflags) indicates the condition. If the bit is set to
  5298. 0, the gaps will be background colour and if 1 they are border colour,
  5299. thus:
  5300. 2.4
  5301.  10 For mode%=0 TO 17
  5302. 2.4
  5303.  20   MODE mode%
  5304. 2.4
  5305.  30   VDU 10,0,24,128,0|
  5306. 2.4
  5307.  40   SYS“OS_ReadModeVariable”
  5308. 2.4
  5309. ,MODE,0 TO ,,modeflag%
  5310. 2.4
  5311.  50   PRINT “Mode= ”;MODE
  5312. 2.4
  5313.  60   IF (modeflag% AND (1<<3))
  5314. 2.4
  5315. <>0 THEN t$=“Border” ELSE t$=“Background”
  5316. 2.4
  5317.  70   IF (modeflag% AND (1<<2))
  5318. 2.4
  5319. <>0 THEN t$=“No”
  5320. 2.4
  5321.  80   PRINT t$;“ gaps”
  5322. 2.4
  5323.  90   wait%=GET
  5324. 2.4
  5325. 100 NEXT
  5326. 2.4
  5327. •   Auto linefeed − Some software packages, like First Word Plus for
  5328. instance, insist that you set your printer so that it does not generate
  5329. auto-matic linefeeds. This means that if you list a BASIC program with
  5330. lines that are longer than the carriage length, the line wraps round and
  5331. is overprinted. To avoid this and the difficulty of fiddling with dip
  5332. switches, use the BASIC command WIDTH before printing. To do this, type
  5333. WIDTH <carriage length> (e.g. WIDTH 80) before printing and WIDTH 0 to
  5334. reset to the default setting after printing.
  5335. 2.4
  5336.  
  5337.  
  5338. •   How to wipe a disc clean − Having explained in H & T in issue 2.1
  5339. how to use *LIB“” and *WIPE * ~C to wipe a disc clean, here is the
  5340. really quick way! Take a blank disc and do a *BACKUP onto the disc to be
  5341. purged − takes about 10 seconds all together, even with only a single
  5342. drive!
  5343. 2.5
  5344. •   Microlink Modem connections − We have at last sorted out the
  5345. connections necessary for the Microlink Multispeed modem. The problem is
  5346. that it seems to need two different connections depending on whether you
  5347. are using ArcTerm or Hearsay. Anyway, here are some connections that
  5348. seem to work OK. ArcTerm version first:
  5349. 2.5
  5350. Modem    Computer
  5351. 2.5
  5352. GND   1
  5353. 2.5
  5354.             }Ñ   5   GND
  5355. 2.5
  5356. GND   7
  5357. 2.5
  5358. RXD   2   Ñ   3   TXD
  5359. 2.5
  5360. TXD   3   Ñ   2   RXD
  5361. 2.5
  5362. RTS   4   Ñ   7   RTS
  5363. 2.5
  5364. CTS   5   Ñ   8   CTS
  5365. 2.5
  5366.             6   DSR
  5367. 2.5
  5368. DSR   6   Ñ{2 .5
  5369.             1   DCD
  5370. 2.5
  5371. DTR   20   Ñ   4   DTR
  5372. 2.5
  5373. Note that the Archimedes DCD is not connected to the modem DCD but to
  5374. the DSR to ensure that it is ON all the time. The modem DCD is only ON
  5375. whilst on-line. Here are the Hearsay connections:
  5376. 2.5
  5377. Modem    Computer
  5378. 2.5
  5379. GND   1  
  5380. 2.5
  5381.           }Ñ   5   GND
  5382. 2.5
  5383. GND   7
  5384. 2.5
  5385. RXD   2   Ñ   3   TXD
  5386. 2.5
  5387. TXD   3   Ñ   2   RXD
  5388. 2.5
  5389. RTS   4   Ñ   7   RTS
  5390. 2.5
  5391. CTS   5   Ñ   6   DSR
  5392. 2.5
  5393. DSR   6 (NC)
  5394. 2.5
  5395. DTR   20 (NC)
  5396. 2.5
  5397. DCD   8   Ñ   9   RI
  5398. 2.5
  5399.             1   DCD}
  5400. 2.5
  5401.             4   DTR} linked
  5402. 2.5
  5403.             8   CTS}
  5404. 2.5
  5405. •   BBC Hard Discs − If you have BBC hard discs that use the 1 MHz bus,
  5406. you can run them on the Archimedes under the new 6502 emulator,
  5407. “65host”, that comes with RISC-OS. All you do is enter 65host and load
  5408. the BBC 1770 ADFS then, assuming you have an I/O podule, connect the
  5409. hard disc to the 2 MHz bus and away you go.
  5410. 2.5
  5411. (Surely it wouldn’t be too difficult, would it(?), to patch it into the
  5412. existing operating system to make the hard discs accessible in native
  5413. mode instead of limiting it to use with the emulator? Could anyone do
  5414. that for us? Ed.)
  5415. 2.5
  5416. •   Naff RTC Month − If you get this error message when running the
  5417. desktop, the chances are that it is time to change your batteries. Acorn
  5418. suggest changing them once a year.
  5419. 2.5
  5420. •   Repton 3 − first a comment − The characters included are exactly the
  5421. same as in the BBC version even though they are mode 9, so it looks like
  5422. mode 5 on the BBC. This is disappointing as the extra resolution and
  5423. colour are wasted unless you redefine the characters − a mammoth task as
  5424. there are 768 altogether! (Phil Armstrong, Doncaster)
  5425. 2.5
  5426. Phil also saysÉ I redesigned the first 48 characters which took quite
  5427. some time and I did encounter a few problems, namely my maps occasion
  5428. ally were wiped or the start position changed. To get round this
  5429. problem, I examined the data files and found:
  5430. 2.5
  5431. &0000 to &10A0   8 Map definitions and colours for each map
  5432. 2.5
  5433. &10A0 to &70A0   48 character definitions
  5434. 2.5
  5435. So if you lose your maps or wish to copy a character set to another set
  5436. of maps, follow these operations:
  5437. 2.5
  5438. *Load Newdata 10000    load new char-acters as saved by editor
  5439. 2.5
  5440. *Save Char 110A0 170A0   save character set alone
  5441. 2.5
  5442. *Load Olddata 10000   load file contain-ing required maps
  5443. 2.5
  5444. *Load Char 110A0   overlay new character set
  5445. 2.5
  5446. *Save Newfile 10000 170A0   save maps and characters together
  5447. 2.5
  5448. Newfile can then be loaded into the game. Changing characters does not
  5449. seem to affect the competition numbers the game gives you.
  5450. 2.5
  5451. •   Games on the 440 − Many games programs will not run on the 440 if
  5452. the screensize is set above 160k, so you should try *Configure Screen
  5453. size 5 before running the game.
  5454. 2.5
  5455. •   Pacmania − Two avid “Pacmaniacs”, Harjit Takshak and Linus Twizell,
  5456. have provided some Pacmania hints:
  5457. 2.5
  5458. Do a *LOAD PACMANIA 10000 then you can set the number of lives with
  5459. ?&102C8 = n (but too many slows the games down) and ?&113D4 = n sets the
  5460. number of points per pill and ?&10234 = n sets the number of credits and
  5461. then CALL &10000 starts off the game.
  5462. 2.5
  5463. •   GammaPlot − It is possible to change the colour of a line on a line
  5464. graph by using the command *SG17,n,128 where n is the GCOL number (e.g.
  5465. 48 = blue). This command can also be used in the Macro mode followed by
  5466. a line with GRAPH (just the graph) or CHART (graph and axis). The colour
  5467. will be saved, along with the graph, to disc.
  5468. 2.5
  5469. •   Printer problems − there have been one or two problems with spurious
  5470. operation of printers, especially with Integrex printers when doing
  5471. graphics dumps. These are caused by timing problems on the Archimedes’
  5472. parallel port control lines and can be solved by an internal circuit
  5473. board modification that Acorn have recognised as a field change, i.e. if
  5474. you are having problems, go to your local Archimedes dealer and ask if
  5475. he can do field change 2002 for you. (D.I.Y. field changes will void
  5476. your warranty, but if you want details anyway, send us an S.A.E.)
  5477. 2.5
  5478. •   Conditional booting (cf Archive 2.3, page 13) Philip Colmer says
  5479. that unfortunately *FX200,2 followed by reset is treated as a power-on
  5480. reset so the monotonic clock is reset. Probably a better way is
  5481. SYS“OS_Byte”,253,0,255 TO break% where break% is 0 for soft break, 1 for
  5482. power-on reset and 2 for a hard break − a bit more reliable than
  5483. checking a clock value.
  5484. 2.5
  5485. •   BCPL on ADFS − J Laski writesÉ I am a BCPL freak: due to the fact
  5486. that ADFS was not available when it was designed, the ROM system causes
  5487. files to be read/written with OSBGET/PUT rather than OSFILE/OSGBPB;
  5488. also, intermediate files in the compiler and editor use names such as
  5489. Backup$ which ADFS abhors.
  5490. 2.5
  5491. To get round this, patch the routine in the ROM (image disk) FSTYPE
  5492. (G39) always to return 7 (see manual p117). In both BCPLARG and BCPLCCG,
  5493. patch the second static load (LLL) in G1 from “OCODE$$” to “OCODE!!”. In
  5494. ED, in G318 patch the static load in G318 about 40 words before the SWL
  5495. near the end of the routine; this can best be found by looking for the
  5496. long forward jump about 30 Cintcodes from the beginning. (N.B. I use an
  5497. extended ED, so have only given rough positions; G318 is the last
  5498. routine called from G1.)
  5499. 2.5
  5500. If you feel you cannot make these changes yourself, and send me a disk
  5501. with proof that you have a legal copy of BCPL and a stamped self-
  5502. addressed mailer, and I will send you a modified version. I would
  5503. appreciate, but do not insist on, any utilities that you think might
  5504. amuse me.
  5505. 2.5
  5506. I am seeking a version of BCPL in ARM code and, if ACORN cannot be
  5507. persuaded to release their version, will do it myself, probably somewhat
  5508. ‘adhocly’. If you have any views on desirable facilities, I should be
  5509. glad to read them. I shall shareware distribute with a licence fee
  5510. requested. (Dr J Laski, 18 Ebury Street, London, SW1W 0LU.
  5511. 2.5
  5512. •   “Colour Printouts − The Easy Way”  − I read with considerable
  5513. interest the article by W R (Basil) Davis on taking 35mm photographs of
  5514. the monitor screen. (Archive 1.9, page 52) I was able to put this to
  5515. practical use recently since I wished to design and produce some
  5516. graphics screens (using GammaPlot) and use these in a conference
  5517. presentation. I did consider using acetates with an overhead projector,
  5518. but decided 35mm slides would be more suitable.
  5519. 2.5
  5520. The following additional comments (which should be read in conjunction
  5521. with the original article) may assist other Archive readers contemplat
  5522. ing taking such pictures:
  5523. 2.5
  5524. 1) Before embarking on photographing any screen displays, it is
  5525. important to remember that any apparently minor “blemish” will be
  5526. magnified considerably if your results are being projected using 35mm
  5527. slides. Careful thought should be given to the screen layout and the
  5528. choice of colours; provided they don’t clash, brighter foreground
  5529. colours are preferable, with black or a dark blue making an ideal
  5530. background. The normal Archimedes text is quite visible when projected
  5531. using 35mm slides; additionally I used a GammaPlot feature to enlarge
  5532. the standard text for titles etc. and, whilst this was quite acceptable
  5533. on a monitor screen, when projected it did appear noticeable “chunky”.
  5534. Next time I will use the Archimedes special fonts with GammaPlot
  5535. instead.
  5536. 2.5
  5537. 2) In choosing the 35mm film to use, one important consideration may be
  5538. the speed with which you wish the results to be returned to you. Whilst
  5539. most colour print films can be developed overnight or even within an
  5540. hour or so, this is not the case with colour slide films. Most have to
  5541. be sent away for processing and a delay of 10−14 days is not untypical.
  5542. If you want colour slide film developed quickly it is best to use (non
  5543. “process paid”) Kodak Ektachrome film which good photographic shops
  5544. should get returned to them within 2−3 days. There are also a few
  5545. specialist laboratories which offer a 2−3 hour service.
  5546. 2.5
  5547. 3) When determining the correct ‘peak white’ exposure using an automatic
  5548. camera, it is possible for the camera’s metering system to be too
  5549. sophisticated! I was using a Minolta 7000 AF camera and the exposure
  5550. settings fluctuated quite rapidly as the monitor screen picture was
  5551. scanned and refreshed. Checking the exposure using a different camera
  5552. confirmed the article’s “if all else fails” assumed exposure settings.
  5553. 2.5
  5554. 4) Focusing may well be perfectly feasible when using a camera with
  5555. auto-focus. I found it best to set the initial focus with a screen
  5556. display visible, rather than a blank screen, and then switch the auto-
  5557. focus off − this is because the Minolta 7000 AF system tries to refocus
  5558. after every picture is taken. In setting the combination of shutter
  5559. speed and aperture, it is probably preferable to err towards the slower
  5560. shutter speed/smaller aperture (higher ‘f’ number) setting as this will
  5561. increase the ‘depth of field’ and give a greater safety margin if the
  5562. focusing is not quite right.
  5563. 2.5
  5564. 5) As mentioned in the original article, a sturdy tripod is virtually
  5565. essential and a remote shutter release (or possibly the camera’s Delayed
  5566. Action feature − if fitted) must be used to avoid camera shake and
  5567. consequent blurred pictures. Additionally, switching off the room lights
  5568. when taking the photographs should avoid any extraneous reflections off
  5569. the monitor screen possibly spoiling the finished results.
  5570. 2.5
  5571. 6) If you are using 35mm slides and the results are to be projected
  5572. using a professional (rather than domestic) slide projector, it is
  5573. definitely worthwhile having the slides ‘glass mounted’ − although this
  5574. does increase the cost! This prevents the heat from the projector lamp
  5575. “popping” the slide and causing part(s) of it to appear out of focus.
  5576. For those who are interested in further reading on the subject, there is
  5577. an article in January 1989’s issue of BBC Acorn User (pages 81-83) on
  5578. the subject of taking photographs of the computer screen, there is even
  5579. advice on taking pictures of commercial games software.    Rob Brown.
  5580. 2.5
  5581.  
  5582. 2.5
  5583. •   Willie Stott has sent in a very complete set of facilities for
  5584. support of the Epson LQ series, including a download font designer. This
  5585. will only be of interest to those with the right hardware, but he has
  5586. used a neat idea to get control of any extra facilities that your
  5587. printer supports, but for which First Word Plus has no category. He
  5588. points out that foreign characters can be used as printer definitions.
  5589. The characters with ASCII values between &E0 and &EE appear on the
  5590. bottom line of the character window and you have to do three things:
  5591. 2.5
  5592. a)   Define the character as a suitable message to the printer in the
  5593. character translation table of the hex file, then turn it into a driver.
  5594. 2.5
  5595. b)   Design suitable character definitions (using VDU23,...) to
  5596. represent the action of the printer so that it is added to the compu
  5597. ter’s character table when FWP is booted up.
  5598. 2.5
  5599. c)   Include your definitions in the FWP boot file before the *key 1 ...
  5600. line.
  5601. 2.5
  5602. •   A tip from an unknown writer (maybe Paul knows who to acknowledge −
  5603. Sorry, no. Ed.): how would you like to be able to produce a spool file
  5604. of your FWP output? What? Not much!? You may be missing something, as
  5605. you could then move the file to another machine and get a printout via
  5606. that machine, e.g. via an IBM or a mainframe. The trick is to *SET
  5607. PrinterType$4 <spoolfilespec> before booting up FWP. Then select
  5608. “network port” from the printer box in FWP. The system variable
  5609. PrinterType$4 holds the pathname for network printer output. The
  5610. <spoolfilespec> needs to include the full adfs:$.filename format.
  5611. 2.5
  5612. •   Someone besides me is the kind of two-fingered typist that hits
  5613. <ctrl> at the same time as <A>. What should our correspondent do? File
  5614. his fingers down? Stick a piece of rough Velcro on the <ctrl> key? No,
  5615. contact the Archive office and have someone write a module to intercept
  5616. <ctrl-A> and make a beep. The trouble is that when you are just feeling
  5617. bold enough to try to modify a bit of assembler to help a friend, you
  5618. should not choose a keyboard buffer intercept. There is no way to try it
  5619. out safely, or even to get a decent service from the debugger as every
  5620. keypress goes via your duff code. You cannot even type “*rmkill”
  5621. successfully. The only key which really works is <reset>. Help!! All
  5622. serious programmers out there: where did I go wrong? Why does the IRQ
  5623. stack pointer unwind so fast? P.S. If you can include a <ctrl-f12> =
  5624. swapcase facility in the module, you will win a large “thank you” and a
  5625. small prize for the best solution. You can start with the PrintKey
  5626. module program in Archive1.10, page 45.
  5627. 2.5
  5628. •   There is a new version of FWP available from Acorn for those whose
  5629. copy does not pause at the ends of each page, even if the flag has been
  5630. correctly set in the printer driver. Return your disk to Customer
  5631. Support, Acorn Computers Ltd., Fulbourn Rd., Cherry Hinton, Cambridge
  5632. CB1 4JN. (Reprinted from BBC Acorn User, Feb ’89, p 10).
  5633. 2.5
  5634. It is rumoured that there is a genuinely new version on its way, perhaps
  5635. to coincide with RISC-OS.
  5636. 2.5
  5637. •   Johnathan Young has a cure for the FWP buzz (the one which comes out
  5638. of the speaker or down the external audio output, and sounds like the
  5639. onset of tinnitus): boot up and then exit EMR’s sound synth package. A
  5640. bit expensive for silence, but you get the music program free! Has
  5641. anyone an explanation or a better solution?
  5642. 2.5
  5643.  
  5644.  
  5645. •   Dacom modem connections − If you want to connect a Dacom modem to
  5646. the Archimedes, try the following connections:
  5647. 2.6
  5648.  Archimedes   Modem
  5649. 2.6
  5650. 2   Ñ   3
  5651. 2.6
  5652. 3   Ñ   2
  5653. 2.6
  5654. 5   Ñ   7
  5655. 2.6
  5656. 9   Ñ   6
  5657. 2.6
  5658. Also link 1, 4 and 8 at the Archimedes end and also 6 to 7. If you are
  5659. using Hearsay 1.04, use the Tandata modem driver, not the Dacom one.
  5660. 2.6
  5661. •   Easy copying − If you have a single drive, try setting
  5662. 2.6
  5663. *set alias$dcopy %0 :0.%0 PQ
  5664. 2.6
  5665. Then you can use, say,
  5666. 2.6
  5667. *dcopy filetocopy
  5668. 2.6
  5669. and this will copy the file “filetocopy” onto another disc on the same
  5670. drive, prompting for disc changes.
  5671. 2.6
  5672. •   Easy compacting − This could apply to a number of commands, but if
  5673. you want, for example, to compact a disc several times, you can use
  5674. *repeat 6 compact which will do a *compact 6 times if you have previ
  5675. ously set an alias for repeat as follows:
  5676. 2.6
  5677. *set alias$repeat if %0>0 then repeat %0-1 %*1|m if %o>0 then %*1
  5678. 2.6
  5679. •   Masked Sprites − The Welcome Disc Sprite Editor was criticised in
  5680. November 88 Archive as not working properly. It does work properly, well
  5681. almost!
  5682. 2.6
  5683. To create a masked sprite, first draw your sprite as normal, then press
  5684. <shift-f9> (create mask) then select the colour that you want to be
  5685. transparent and fill in any areas that are to be transparent. The
  5686. display will show a hatched effect for that colour.
  5687. 2.6
  5688. To plot a masked sprite, remember that you must use a GCOL 8,0 before
  5689. plotting the sprite.
  5690. 2.6
  5691. •   Hard disc Backup program − Paul Hobbs sent in the following
  5692. improvement to last month’s hard disc backup programÉ The very useful
  5693. hard disk backup program in Archive 2.5 can, I think, be improved very
  5694. easily by the addition of the following lines after the line PRINT
  5695. CHR$(13);”Scanning:  “;... etc in PROCaction(). It allows a check to be
  5696. made for directories not to be backed up. The full path name should be
  5697. given as in the example below. Quite a few of the directories on my disk
  5698. are backed up on their own floppies and this modification saves a lot of
  5699. time.
  5700. 2.6
  5701. 1621 RESTORE
  5702. 2.6
  5703. 1622 skip=FALSE
  5704. 2.6
  5705. 1623 REPEAT
  5706. 2.6
  5707. 1624   READ nocop$
  5708. 2.6
  5709. 1625   IF LEFT$(dir$,LENnocop$)
  5710. 2.6
  5711. =nocop$ THEN skip=TRUE
  5712. 2.6
  5713. 1626 UNTIL nocop$=“*** END ***”
  5714. 2.6
  5715. 1627 IF skip=TRUE THEN ENDPROC
  5716. 2.6
  5717. 7000DATA :4.$.1WP.cfg,:4.$.1WP.doc
  5718. 2.6
  5719. .BAK,:4.$.TMP,:4.$.BBCTelSoft
  5720. 2.6
  5721. 7001DATA :4.$.TMP,:4.$.CPROGGIES,
  5722. 2.6
  5723. :4.$.BACKUP,:4.$.1WP.hex
  5724. 2.6
  5725. 7002DATA “*** END ***”
  5726. 2.6
  5727. •   Hard disc squeek − Those who are lucky enough to have hard discs may
  5728. be suffering a continuous high pitched squeal from the drive when the
  5729. machine is switched on. My dealer assured me that it would eventually go
  5730. away, but I lost patience and cured it by lubricating the disc drive
  5731. spindle with WD-40 (or similar). If you remove the disc drive and look
  5732. into the connector end, between the printed circuit board and the drive
  5733. body, you should be able to see a carbon pad mounted on the PCB which
  5734. rubs against the end of the spindle (to earth it and avoid static
  5735. problems). Using an aerosol can fitted with a long tube, a few drops of
  5736. lubricant on this pad will cure the noise. Take care when squirting −
  5737. and naturally no responsibility is accepted!
  5738. 2.6
  5739. •   C routines − When using the tmpnam() or tmpfile() routines in the
  5740. ANSI C library, a directory &.Tmp needs to be created on the current
  5741. drive. This is not present on the master floppy, nor is it created by
  5742. the hard disc install procedure (installHD).
  5743. 2.6
  5744. •   ANSI C command line parameters − page 31 of the manual says that
  5745. “Arguments to main() are the words of the command line, delimited by
  5746. spaces”, but gives no further information. The parameters are actually
  5747. passed in the same way as the Unix2 environment does − for those
  5748. programmers unfamiliar with Unix, the main procedure is called with two
  5749. arguments, which are declared as:
  5750. 2.6
  5751. int main(argc,argv)
  5752. 2.6
  5753. int argc;
  5754. 2.6
  5755. char *argv[];
  5756. 2.6
  5757. {2 .6
  5758.      /* argv[1] points to first
  5759. 2.6
  5760.  parameter
  5761. 2.6
  5762.         argv[2] points to second,
  5763. 2.6
  5764.  etc.
  5765. 2.6
  5766.         Program name is at argv[0] */
  5767. 2.6
  5768. where argc is the number of parameters given (which includes the program
  5769. name, so this will always be at least 1) and argv is an array of
  5770. pointers to the parameters − argv[0] is the command name and argv[1] is
  5771. the first parameter. Parameters are normally separated by spaces, but
  5772. quoted strings are passed as one unit. Some programmers prefer to
  5773. declare argv as:
  5774. 2.6
  5775.    char **argv;
  5776. 2.6
  5777. and use it as a pointer to a list of pointers to the arguments.
  5778. 2.6
  5779. •   BBC Master Edit − If you want to use an image of the Edit ROM (the
  5780. Master version) under 65Arthur, you need a *ALPHABET BFONT before
  5781. running it up, otherwise the on-screen help display looks very confus
  5782. ing. This ROM, by the way, uses CMOS byte 8 (“reserved for Acorn use”)
  5783. in which to save the screen mode and help level.
  5784. 2.6
  5785. •   *COPY without the ‘Q’ − omitting the Q option when copying a file
  5786. forces Arthur to ignore bad sectors or tracks in a file. This allows you
  5787. to recover screens or text files from corrupted discs If you have a
  5788. single drive and don’t want to perform umpteen swaps then proceed as
  5789. follows:
  5790. 2.6
  5791. *DELETE or *COPY (with Q) the other files until you have room for
  5792. another copy of the bad file.
  5793. 2.6
  5794. Then *COPY :0.filenme :0.BADfilenme ~C~PV
  5795. 2.6
  5796. •   Orion loading speed − To speed up the loading, note that there is
  5797. what appears to be a non fatal bug in the “$.Orion.Orion_bas” program.
  5798. It *sload’s a sprite file seven times!
  5799. 2.6
  5800.    LOAD “$.Orion.Orion_bas”
  5801. 2.6
  5802. now look round about line 3000 and you will find the *sload command that
  5803. should be outside the FOR/NEXT loop!
  5804. 2.6
  5805. Edit this and then save the program back onto the disc. (The name at the
  5806. top of the program has an extra ‘n’ at the end which has to be deleted
  5807. from the filename as displayed by the editor if you try to save it with
  5808. <f3>)
  5809. 2.6
  5810. •   Orion − Feel like a laugh? Instead of EDITing “$.Orion.Orion_bas” as
  5811. above, try :
  5812. 2.6
  5813. *con. scr. 20
  5814. 2.6
  5815. *con. spr. 20
  5816. 2.6
  5817. <ctrl-break>
  5818. 2.6
  5819. *DIR Orion
  5820. 2.6
  5821. LOAD “Orion_bas”
  5822. 2.6
  5823. 701 *UNSET BJS
  5824. 2.6
  5825. RUN
  5826. 2.6
  5827. Then when you press <space> to load the game you get a marvelous
  5828. digitised laugh! This is apparently a (very clever) part of the
  5829. protection used in the program.
  5830. 2.6
  5831. •   Extended life for Orion − While the instructions are scrolling up
  5832. the screen try pressing <U>, <L>, <C> and <space> together but in that
  5833. order. It then allows you to select a level at which to start the game
  5834. and you will find that you start with 10 lives & 10 smart bombs!
  5835. 2.6
  5836. •   Zarch cheat − you can get into the cheat mode if, when you first
  5837. start up and are sitting on the landing pad, you press <Q>, <T> and <U>
  5838. together but in that order. You may have to try it a few times. Now <L>
  5839. gives you an extra life, <F> refuels (in mid-air) and <D> toggles the
  5840. auto-pilot.
  5841. 2.6
  5842. •   Zarch − Some new landscapes make this game much better. (Program
  5843. NewWorld on monthly program disc or send S.A.E. for listing.) This
  5844. program works with the original protected version of Zarch as long as
  5845. you have screen size to 160k and other sizes to zero. It uses a
  5846. variation of the PRINTKEY program in one of the earlier Archives.
  5847. (PRINTKEY had a bug in it! P%=0:O%=code% OPT 4-7)
  5848. 2.6
  5849. •   Terramex. For endless lives, with Terramex disc in drive, type:
  5850. 2.6
  5851. *LOAD TERRACODE 9000
  5852. 2.6
  5853. !&CF18=&FAFFDC3E
  5854. 2.6
  5855. !&CF20=&FAFFDC3E
  5856. 2.6
  5857. CALL &9000
  5858. 2.6
  5859. •   Quazer − with the Impact software version of Quazer (which appears
  5860. to be the same as V1.42) type:
  5861. 2.6
  5862. *SETEVAL Quazer%MeatHead 1 -Immortal
  5863. 2.6
  5864. (also try Quazer%Lives, Quazer%Level)
  5865. 2.6
  5866. Then use *Quazer to Run
  5867. 2.6
  5868. •   OS_FSControl problem − David Scott reckons there is a problem with
  5869. the system command for the COUNT operation. The OS_FSControl (&29)
  5870. system command for filing system control with R0 set to 28 (page 262 of
  5871. the Programmers Reference Manual) has a problem which is not apparent
  5872. from the description given.
  5873. 2.6
  5874. If the call is used in a program to obtain values for use by the program
  5875. it is not possible to do this without the information also being printed
  5876. on the screen. This is because bit 8 of the action mask in R3 must be
  5877. set in order to get the correct values returned in R2 and R3.
  5878. 2.6
  5879. The way round this problem is to turn the screen output off using VDU21
  5880. before making the system call and then to turn it back on afterwards
  5881. with VDU6. If a printer is connected then this will also have to be
  5882. temporarily disconnected with VDU3 before and VDU2 after the call.
  5883. 2.6
  5884. •   Potential Electrocution! (Archive 2.5 p19)  − This is a problem with
  5885. most colour monitors. The explanation is as follows... When you turn the
  5886. power off, a static charge forms on the screen surface, creating a
  5887. potential difference of several KV between the monitor chassis and the
  5888. screen surface. If you then pick the monitor up with the screen facing
  5889. your body, the screen is effectively connected to your body, and so the
  5890. potential now exists between you and the monitor chassis, and remains
  5891. there due to the insulating properties of the plastic case. If you then
  5892. touch the chassis via a mounting screw or the rear connector, the
  5893. potential will be discharged, possibly painfully! (I speak from
  5894. experience!)  The answer is to make sure you are touching the chassis
  5895. (e.g. the RGB connector shell) BEFORE picking it up, and keep hold of it
  5896. whilst carrying the monitor. The other answer is to lift and carry it
  5897. with the screen away from you.
  5898. 2.6
  5899. •   Pipedream on RISC-OS − As reported last month, the current version
  5900. of Pipedream DOES work under RISC-OS. All you have to do is *RMKILL
  5901. International to kill the international keyboard. This is because Acorn
  5902. have changed the use of the <alt> key under RISC-OS and Pipedream uses
  5903. this for its drop-down menus.
  5904. 2.6
  5905. •   PC Emulator problems − You may have problems with the computer
  5906. locking up when you are using the PC emulator. This happens sometimes
  5907. when you have a modem connected to the RS423 port which is not switched
  5908. on. I suspect it may be the “unknown IRQ at &00000000” which Arthur
  5909. manages to cope with but perhaps the PC emulator can‘t. Try keeping the
  5910. modem switched on.
  5911. 2.6
  5912. •   Stacked bar charts in Gammaplot − In Gammaplot it is not possible to
  5913. produce directly “stacked” or segmented bar charts such as:-
  5914. 2.6
  5915.  
  5916. 2.6
  5917.  
  5918. 2.6
  5919.  
  5920. 2.6
  5921. Nor is it possible to create directly bar charts with gaps between the
  5922. bars such as-:
  5923. 2.6
  5924.  
  5925. 2.6
  5926.  
  5927. 2.6
  5928.  
  5929. 2.6
  5930. but it is possible to create them indirectly by using a table with (say)
  5931. only 1 in 5 of the values as a non-zero number (i.e. make other gaps by
  5932. introducing zeros in the spreadsheet).
  5933. 2.6
  5934. Multiple bar charts such as:-
  5935. 2.6
  5936.  
  5937. 2.6
  5938.  
  5939. 2.6
  5940.  
  5941. 2.6
  5942.  
  5943. 2.6
  5944. Can be created by producing three (or more) separate graphs from three
  5945. separate spreadsheets and then overlaying one on the other by using
  5946. “Display all graphs” and using the “Window facility to move each (of the
  5947. 3) separately to the desired position. The diagonal lines and any text
  5948. (such as scales or title) is added in “Customise” afterwards.
  5949. 2.6
  5950. I know of NO package which produces segmented bar charts. Presenter will
  5951. produce multiple bars directly but without the flexibility of Gamma
  5952. Plot.
  5953. 2.6
  5954. If you had the patience then you could make several different bar charts
  5955. and use the “Block Move” facility of “Customise” to stack the blocks of
  5956. the bars but it would take time and might be a lot easier in, say,
  5957. Artisan which has a “transparent” colour for use with its sprites.
  5958. 2.6
  5959. (N.B. Overlaid line graphs and multiple pie charts are very easy in
  5960. Gammaplot.)
  5961. 2.6
  5962.  
  5963. 2.7
  5964. •   BBC winchester on Archimedes!! Alan Glover saysÉ I have got it to
  5965. work on the i/o podule under RISC-OS. Here’s what you do: from the
  5966. !65Host directory:
  5967. 2.7
  5968. *RMLOAD !RunImage
  5969. 2.7
  5970. *CACHEROM 0 dnfs
  5971. 2.7
  5972. *CACHEROM 1 ARFS
  5973. 2.7
  5974. *CACHEROM 2 <>.ADFS130
  5975. 2.7
  5976. *EMU.
  5977. 2.7
  5978. Note: Must be ADFS 130 − i.e. a B/B+ version  and you must find an image
  5979. of this yourself as it is not provided with RISC-OS. To use the
  5980. Archimedes’ ADFS type *ARFS.
  5981. 2.7
  5982. The winchester is connected to the 2 MHz bus (theoretically 1 MHz!) on
  5983. the I/O podule as it would be on a BBC.
  5984. 2.7
  5985. •   Configuration problems in Art Nouveau − If you select ‘Configure
  5986. machine’ from the opening menu when you have already configured the
  5987. machine, you lose your old configuration when you quit and you are left
  5988. with Art Nouveau’s own configuration. This is because it doesn’t keep
  5989. track of whether you have already configured it. I was lucky − I had
  5990. written a program long ago that translates a *SPOOLed *STATUS into a
  5991. load of *Configure’s and I keep a copy of this spool on my hard disc at
  5992. all times. You have been warned. Martyn Lovell.
  5993. 2.7
  5994. •   Graphic Writer with a Star SG-10 − If you can have one complaint
  5995. about Graphic Writer (apart from the manual) it’s the printer support. I
  5996. own a Star SG-10 and am trying to let Graphic Writer use it to the full.
  5997. The Star has an NLQ character set, but this cannot be combined with any
  5998. other text style except underlined. So what I want is to adapt the
  5999. printer driver so that it would normally print NLQ and for the other
  6000. effects resort to draft printing. For this, I used the Printcon program
  6001. and gave the following codes:
  6002. 2.7
  6003. Initialisation:
  6004. 2.7
  6005. ESC “@”
  6006. 2.7
  6007. ESC “G”
  6008. 2.7
  6009. ESC “4”
  6010. 2.7
  6011. Which resets the printer, turns on double-strike (gives better bold, but
  6012. you may omit it) and NLQ. Make sure the printer is in IBM mode.
  6013. 2.7
  6014. For configuration (leave the rest the same as a FX80):
  6015. 2.7
  6016. Plain:     27,70,27,52
  6017. 2.7
  6018. Bold:      27,53,27,69
  6019. 2.7
  6020. Italic on: ESC “I”,1
  6021. 2.7
  6022. Italic off:ESC “I”,0
  6023. 2.7
  6024. Note that the input routine of the printcon program doesn’t accept two
  6025. “ESC” sequences on one line, but it accepts two 27’s. The italic codes
  6026. are different from an FX80. In fact, FX80 compatibility turns out to be
  6027. somewhere in between the “Star” and “IBM” modes of the Star SG-10. The
  6028. trick is the plain and bold codes. When Graphic Writer finds a “Bold”
  6029. code it now also sends an NLQ-off code to the printer, which in effect
  6030. makes the printer print in draft, emphasized and double-strike, the
  6031. latter being already set at initialisation. (Yes, it is confusing, isn’t
  6032. it?!) This makes it possible to mix NLQ, bold and italic-bold in the
  6033. text. However, you can’t use italics or super/subscript without bold.
  6034. These just print in normal NLQ.
  6035. 2.7
  6036. The same method should apply to other printers which can’t do everything
  6037. in NLQ.
  6038. 2.7
  6039. Another tip on Graphic Writer is that you should always make any graphic
  6040. as big as possible, i.e. use the whole graphic area, however small you
  6041. want the picture to be. This makes page composition a lot easier and
  6042. also causes less problems with distortion when rescaling.
  6043. 2.7
  6044. •   Interrupt module − The interrupt module by Steve Hoare (Archive 2.6
  6045. p44) is very useful especially, as he states in his article, with First
  6046. Word Plus for creating directories etc. However there is a problem
  6047. associated with *interrupt 0. This is that the pound key also generates
  6048. ASCII 0 (a bug in OS1.2 I think) which means that every time you type a
  6049. ‘pound’, the interrupt module takes over and opens up the OS window.
  6050. However, <ctrl-O> is unused by First Word Plus, so I use *interrupt 15
  6051. instead.
  6052. 2.7
  6053. The module also comes in handy when using a comms program to check on
  6054. filenames, *type logfiles etc, but there is an enhancement that I think
  6055. would make it more useful still. While in the OS window, it is possible
  6056. to type <ctrl-Z> to open up the text window to the full screen which is
  6057. handy, but on exit (in a WIMP program) only the top half of the screen
  6058. is restored. If the source code could be modified to issue a redraw
  6059. request for the whole screen it would be an improvement. Having looked
  6060. at the code, it should be easy to do. Any offers?
  6061. 2.7
  6062. •   Memory shortage on Logistix and First Word Plus − To get round the
  6063. ‘out of memory’ snag which seems to turn up so often with First Word
  6064. Plus and Logistix, if you have the 1.20 PC emulator, use the PC.PC
  6065. startup routine first and then, instead of using the MS.DOS disc, insert
  6066. Logistix instead and <reset>. <Ctrl-break> will then autoboot Logistix
  6067. with a whole 275k of memory free to use.
  6068. 2.7
  6069. •   Mitsubishi Disc Drives − Here are a number of points to bear in
  6070. mind, writes Vic Budd, when adding external disc drives. If, after
  6071. considering these, you feel competent to carry out the work, go ahead.
  6072. If not, it is prudent to entrust the work to an experienced operator to
  6073. avoid frustrations and disappointments.
  6074. 2.7
  6075. There are different circuit board layouts, but the basic checks on the
  6076. drives are the same.
  6077. 2.7
  6078. 1.   Remove link MS if made and change to adjoining position MM.
  6079. 2.7
  6080. 2.   Remove link IU if made and discard it. On some drives there is no
  6081. removable link. However, there is a circuit board foil link, DI, near
  6082. the data cable edge connector, which is connected to pin 2, and this
  6083. should be cut in these instances.
  6084. 2.7
  6085. 3.   Move drive selector link to position 1, 2 or 3 according to which
  6086. command you wish it to respond. (This assumes that the internal drive is
  6087. to be 0).
  6088. 2.7
  6089. 4.   The resistor pack should be in place. On some drives this consists
  6090. of a single plug-in IC type device, whilst on others there is a row of
  6091. DIL pins which should have shorting links inserted.
  6092. 2.7
  6093. 5.   Make sure the data cable is correctly orientated − it will need to
  6094. be at 180 degrees compared to the three and a half inch drive
  6095. connectors.
  6096. 2.7
  6097. 6.   If, as I do, you wish to run a second three and a half inch
  6098. external drive and a five and a quarter inch drive, the connecting cable
  6099. will, of course, need to be turned through 180 degrees to connect the
  6100. drives together.
  6101. 2.7
  6102. 7.   If you decide to use the Archimedes’ power supply, check the
  6103. connections carefully before attaching the cable connectors, making
  6104. quite sure you do not get the 12v and 5v leads confused.
  6105. 2.7
  6106. If you do all these things correctly, you too should have no problems
  6107. with the Beebug lead and will be able to access drives A, B and C under
  6108. the PC Emulator, as well as 0,1, and 2 under ‘native’ Archimedes.
  6109. 2.7
  6110. •   Moving the pointer when it is not linked to the mouse can be greatly
  6111. simplified by using the POINT TO x%,y% command which does exactly what
  6112. is needed (note that you must unlink the pointer from the mouse first
  6113. with MOUSE ON 129). Details are in the User Guide and under HELP POINT.
  6114. Having looked at the relevant part of the PRM, it appeared to be
  6115. impossible to do this, so I decided to have a rummage around in the
  6116. BASIC module. This resulted in the discovery of some undocumented calls!
  6117. Basically these are extensions of OSWORD &15 whereby putting &05 instead
  6118. of &03 at R1+0 causes the pointer position to be set instead of the
  6119. mouse position (see PRM p.133). Also, values of &04 and &06 appear to
  6120. read the mouse and pointer positions respectively, though the code to
  6121. read the mouse position contains a fatal bug in Arthur 1.2 and cannot be
  6122. used! In theory it might be possible to patch it with a copy of the
  6123. UtilityModule in RAM but this module refuses to be RMKILLed. Martin
  6124. Simmons
  6125. 2.7
  6126. •   Problems with *UP − If you are having problems (as expressed in the
  6127. Help Section last month) with *UP or the use of ^ in a pathname, it is
  6128. probably because of a bug in the ADFS. The problem occurs when a
  6129. directory is renamed. The ADFS does not seem to keep track of it
  6130. properly. The solution, apparently, is to do a *COMPACT on the disc.
  6131. 2.7
  6132. •   Repton 3 again (Philip Armstrong) − I’ve got a few more comments on
  6133. Repton 3. Firstly I hope that no one saved the new characters and maps
  6134. onto the original disc. I have found that occasionally, the maps have
  6135. been corrupted and thus rendered impossible. If you find a screen that
  6136. you can’t do then check it with the original version. For those people
  6137. that can’t get to grips with the array of different characters, create a
  6138. second disc with all the files using a standard set of characters. This
  6139. makes the screens easier to complete. I have included on the monthly
  6140. program disc, the new characters that I use. They are not brilliant, but
  6141. a distinct improvement on the original set. Superior Software only state
  6142. that characters and maps cannot be used for commercial exploitation, so
  6143. it is OK for us to distribute in this way. There is also a simple
  6144. program to merge maps and my characters. Also, if you cannot stand the
  6145. tune that accompanies the loading program of Repton, then change *tune1
  6146. to *tune0 in the “config” file.
  6147. 2.7
  6148. Here is a list of Passwords for Repton 3. Sorry it’s not complete, but I
  6149. do have other things to do. If anyone can do screen E of WORK
  6150. (p=scratch), I’d be pleased to hear from them because it looks imposs
  6151. ible and I have checked it against the original. I suspect a transporter
  6152. has been defined wrongly.
  6153. 2.7
  6154. A   Prelude   B   Rescind   C   Periwig   D   Mortify      E   Forsake  
  6155. F   Gratify   G   Thistle   H   Spangle
  6156. 2.7
  6157. A   Toccata   B   Nocturn   C   Liberal   D   Inspect      E   Delight  
  6158. F   Botanic   G   Vitriol   H   Sacking
  6159. 2.7
  6160. A   Finale   B   Yardarm   C   Zealous   D   Without      E   Aviator  
  6161. F   Elderly   G   Juniper   H   Crimson
  6162. 2.7
  6163. A   America   B   Herbage   C   Kitchen   D   Outcast      E   Quarter  
  6164. F   Untwine   G   Tremble   H   Strange
  6165. 2.7
  6166. A   Arctic   B   Kinetic   C   Gondola   D   Lozenge      E   Rotunda  
  6167. F   Frontal   G   Younger    H
  6168. 2.7
  6169. A   Orient   B   Organic   C   Armhole   D   Visible   E   Neglect   F  
  6170. Biplane   G   H
  6171. 2.7
  6172. A   Oceans   B   Distain   C   Mundane   D   Eclipse   E   Warning   F  
  6173. G   H
  6174. 2.7
  6175. A   Africa   B   Quickly   C   Zigzags   D   Closely   E   Panoply   F  
  6176. Bonfire   G   H
  6177. 2.7
  6178. A   Baby   B   Startle   C   Measles   D   Granite   E   WhimperF  
  6179. Cushion   G   Alimony   H   Utensil
  6180. 2.7
  6181. A   School   B   Qualify   C   Knicker   D   Dynamic   E   Tendril   F  
  6182. Lanyard   G   Vinegar   H   Yaskmak
  6183. 2.7
  6184. A   Teenage   B   Eternal   C   Whisper   D   Feather   E   Rhubarb   F  
  6185. Jasmine   G   H  
  6186. 2.7
  6187. A   Work   B   Inverse   C   Parapet   D   Elegant   E   Scratch   F   G 
  6188.  H  
  6189. 2.7
  6190. A   Oap   B   Jackdaw   C   Rupture   D   Archery   E   Figment   F  
  6191. Natural   G   Tonight   H   Brigade
  6192. 2.7
  6193. A   Prehist   B   Dormant   C   Mineral   D   Varnish   E   Dashpot   F  
  6194. Lobelia   G   Upright   H  
  6195. 2.7
  6196. A   Egypt   B   Lobster   C   Tabloid   D   Achieve   E   Gristle   F  
  6197. Deceive   G   Scalpel   H  
  6198. 2.7
  6199. A   Victori   B   Earnest   C   Pervade   D   Violent   E   Bashful   F  
  6200. Magnify   G   Wrought   H   Horizon
  6201. 2.7
  6202. A   Now   B   Charity   C   Funeral   D   Justify   E   Naughty   F  
  6203. Isolate   G   Radical   H  
  6204. 2.7
  6205. A   Future   B   Primate   C   Mustang   D   Iterate   E   F   G   H  
  6206. 2.7
  6207. •   Shared C Library − Users of release 2 of ANSI C might like to know
  6208. how to use the Shared C Library which is included on the disc but which
  6209. does not seem to be documented in the User Guide. Normally, the AOF
  6210. file, generated by compiling the C source, is linked with the C ANSI
  6211. library file, $.ARM.CLib.O.AnsiLib. This produces an image file which
  6212. can be executed directly by *RUNning it. This image file tends to be
  6213. quite long as large port-ions of the C ANSI library are incorporated in
  6214. it.
  6215. 2.7
  6216. On the C disc, is a file called $.Library.CLib which contains the C ANSI
  6217. library in the form of a relocatable module. The interface between the
  6218. user program and this Shared C Library module is a small file called
  6219. $.ARM.CLib.O.Stubs which simply defines each ANSI library function as a
  6220. SWI which is then recognised by the library module.
  6221. 2.7
  6222. As an example of the use, try the following. Mount your working copy of
  6223. the C disc and enter directory $.ARM.CBench. Now compile the source file
  6224. C.HelloW using the -c option so as not to invoke the linker:
  6225. 2.7
  6226. *CC HelloW -c
  6227. 2.7
  6228. Now link the resulting AOF file with the Stubs library:
  6229. 2.7
  6230. *Link -o HelloW O.HelloW $.ARM.CLib.O.Stubs
  6231. 2.7
  6232. Next load the Shared C Library module:
  6233. 2.7
  6234. *RMLoad $.Library.CLib
  6235. 2.7
  6236. And finally run the program:
  6237. 2.7
  6238. *Run HelloW
  6239. 2.7
  6240. Note that an image file generated in this way is not truly stand-alone
  6241. as it needs the Shared C Library module to be loaded in order for it to
  6242. run (but then again many programs need the Floating Point Emulator to be
  6243. loaded in order to run). A big advantage is that the image file is very
  6244. much smaller than it would be if it had been linked with the ANSI
  6245. library in the normal way. One can envisage several C programs multi
  6246. tasking under RISC-OS, sharing the resources of the Shared C Library.
  6247. 2.7
  6248. It should be noted that the Arthur-specific functions declared in the
  6249. ArthurLib header file are not incorporated in the Shared C Library. If
  6250. your program uses these functions you must include
  6251. $.ARM.CLib.O.ArthurLib at the linking stage. So try the following:
  6252. 2.7
  6253. *CC Balls64 -c
  6254. 2.7
  6255. *Link -o Balls64 O.Balls64 $.ARM.CLib.O.Stubs $.ARM.CLib.O.ArthurLib
  6256. 2.7
  6257. *Run Balls64
  6258. 2.7
  6259. Provided the Shared C Library module is loaded, the program should run
  6260. normally. John Morley
  6261. 2.7
  6262. •   Sprite Animation − There have been many articles relating to the use
  6263. of Sprites on the Archimedes. These have covered the use of PLOT &ED,X,Y
  6264. to display a Sprite in its defined colours at point (X,Y) and the use of
  6265. a Mask to allow a background to appear through the ‘unused’ parts of a
  6266. sprite. They have also shown the use of Exclusive OR plotting using GCOL
  6267. 11,0 to allow the sprite to be moved over any coloured background.
  6268. 2.7
  6269. The EOR solution to this last problem, of moving a multi-coloured sprite
  6270. over a multi-coloured background, does work, but unless a great deal of
  6271. thought is given to palette selection, the sprite does not retain its
  6272. defined colour during movement.
  6273. 2.7
  6274. Many games will require the facility to define a sprite in specified
  6275. colours, with a mask and to move it still retaining those colours rather
  6276. than those produced by EOR.
  6277. 2.7
  6278. A solution is to use the standard Move/Display/Erase in a loop but not
  6279. to use EOR. The following algorithm does this :
  6280. 2.7
  6281. 1   Define the sprite ‘MySprite’ with a mask (using SEDIT on the Welcome
  6282. Disk).
  6283. 2.7
  6284. 2   Determine the size of ‘MySprite’. This may be known but a SYS call
  6285. does it for you.
  6286. 2.7
  6287. LOOP
  6288. 2.7
  6289. 3   Determine the position where ‘MySprite’ is to be plotted.
  6290. 2.7
  6291. 4   Grab a sprite ‘Temp’ from the screen at this position the same size
  6292. as ‘MySprite’.
  6293. 2.7
  6294. 5   Plot ‘MySprite’ with the mask.
  6295. 2.7
  6296. 6   Plot the grabbed sprite ‘Temp’ to ERASE ‘Mysprite’.
  6297. 2.7
  6298. ENDLOOP
  6299. 2.7
  6300. The following program demonstrates this :
  6301. 2.7
  6302.  10 REM > SpritePlot
  6303. 2.7
  6304.  20 REM Copyright Ian Smith
  6305. 2.7
  6306.  30 REM March 1989
  6307. 2.7
  6308.  40
  6309. 2.7
  6310.  50 REM An example program to show
  6311. 2.7
  6312.  the use of sprites moving
  6313. 2.7
  6314.  60 REM across a multi coloured
  6315. 2.7
  6316.  background by grabbing an area
  6317. 2.7
  6318.  70 REM of screen as a sprite and
  6319. 2.7
  6320.  then using it to overwrite the
  6321. 2.7
  6322.  80 REM moving sprite.
  6323. 2.7
  6324.  90
  6325. 2.7
  6326. 100 MODE 15  :REM Works in other
  6327. 2.7
  6328.  modes
  6329. 2.7
  6330. 110 T$=“Temp”  : REM Will be the
  6331. 2.7
  6332.  sprite grabbed from screen
  6333. 2.7
  6334. 120 M$=“MySprite”  : REM A masked
  6335. 2.7
  6336.  sprite created with SEDIT
  6337. 2.7
  6338. 130 *SLOAD !Sprites
  6339. 2.7
  6340. 140
  6341. 2.7
  6342. 150 SYS &2E,40,,T$ TO ,,,W,H :REM
  6343. 2.7
  6344.  Find size of sprite to grab
  6345. 2.7
  6346. 160       : REM W)idth and H)eight
  6347. 2.7
  6348. 170 PROCDrawBackground  : REM Draw
  6349. 2.7
  6350.  a Multicoloured background
  6351. 2.7
  6352. 180 PROCTitle:REM and put titles on
  6353. 2.7
  6354. 190
  6355. 2.7
  6356. 200 REPEAT
  6357. 2.7
  6358. 210  REM ****** MOVE ******
  6359. 2.7
  6360. 220  MOUSE X,Y,B
  6361. 2.7
  6362. 230  SYS &2E,16,,T$,1,X,Y,X+W*2,
  6363. 2.7
  6364. Y+H*4  : REM Grab sprite
  6365. 2.7
  6366.  from screen
  6367. 2.7
  6368. 240
  6369. 2.7
  6370. 250  OSCLI(“SCHOOSE ” + M$ ) :REM
  6371. 2.7
  6372.  Select original sprite
  6373. 2.7
  6374. 260
  6375. 2.7
  6376. 270  REM ****** DISPLAY ******
  6377. 2.7
  6378. 280  GCOL 8,0 :REM Now plot it with
  6379. 2.7
  6380.  its mask
  6381. 2.7
  6382. 290  PLOT &ED, X,Y   :REM at the
  6383. 2.7
  6384.  mouse position
  6385. 2.7
  6386. 300  PLOT &ED,900,800  : REM and
  6387. 2.7
  6388.  display it in rectangle
  6389. 2.7
  6390. 310
  6391. 2.7
  6392. 320  WAIT:WAIT  : REM Synchronise
  6393. 2.7
  6394.  output
  6395. 2.7
  6396. 330
  6397. 2.7
  6398. 340  OSCLI(“SCHOOSE ” + T$) :REM
  6399. 2.7
  6400.  Now plot the grabbed sprite
  6401. 2.7
  6402. 350
  6403. 2.7
  6404. 360  REM ****** ERASE ******
  6405. 2.7
  6406. 370  GCOL 0,0
  6407. 2.7
  6408. 380  PLOT &ED,X,Y : REM at the same
  6409. 2.7
  6410.  place
  6411. 2.7
  6412. 390  PLOT &ED,1000,800  :REM and in
  6413. 2.7
  6414.  its rectangle
  6415. 2.7
  6416. 400 UNTIL B=7      : REM 3 buttons
  6417. 2.7
  6418.  terminates
  6419. 2.7
  6420. 410 END
  6421. 2.7
  6422. 420
  6423. 2.7
  6424. 430 DEF PROCDrawBackground
  6425. 2.7
  6426. 440 GCOL 3 : RECTANGLE FILL 0,0,
  6427. 2.7
  6428. 300,300 : REM Just a
  6429. 2.7
  6430.  couple of
  6431. 2.7
  6432. 450 GCOL 4 : RECTANGLE FILL 50,50,
  6433. 2.7
  6434. 50,50 : REM rectangles and
  6435. 2.7
  6436. 460 GCOL 12:CIRCLE FILL 800,400,200
  6437. 2.7
  6438. : REM circles
  6439. 2.7
  6440. 470 GCOL 5 :CIRCLE FILL 600,300,100
  6441. 2.7
  6442. 480 OSCLI(“SCHOOSE ” + M$)
  6443. 2.7
  6444. 490 PLOT &ED,75,90 : REM and the
  6445. 2.7
  6446.  sprite
  6447. 2.7
  6448. 500 ENDPROC
  6449. 2.7
  6450. 510
  6451. 2.7
  6452. 520 DEF PROCTitle
  6453. 2.7
  6454. 530 GCOL 1
  6455. 2.7
  6456. 540 RECTANGLE 900-2,800-4,W*2+4,
  6457. 2.7
  6458. H*4+8 :REM Draw rectangles
  6459. 2.7
  6460. 550 RECTANGLE 1000-2,800-4,W*2+4,
  6461. 2.7
  6462. H*4+8 : REM in which sprites
  6463. 2.7
  6464. 560 PRINT TAB(53,2);“S P R I T E S”
  6465. 2.7
  6466.   : REM are displayed
  6467. 2.7
  6468. 570 PRINT TAB(52,3);“original
  6469. 2.7
  6470.  grabbed“
  6471. 2.7
  6472. 580 PRINT TAB(0,1);“SPRITE
  6473. 2.7
  6474. DEMONSTRATION : use mouse
  6475. 2.7
  6476.  to move sprite“
  6477. 2.7
  6478. 590 ENDPROC
  6479. 2.7
  6480. Comments on the program
  6481. 2.7
  6482. PROCDrawBackgound sets up a background to move over.
  6483. 2.7
  6484. PROCTitle puts text and a couple of rectangles on the screen
  6485. 2.7
  6486. 150   uses a SYS call to find the Width and Height of ‘MySprite’. This
  6487. is needed so that the right size ‘Temp’ can be grabbed. (See PRM pp
  6488. 429,433.)
  6489. 2.7
  6490. 230   grabs the sprite from the screen using a SYS call. Note the *2 and
  6491. *4 to compensate for screen MODE 15. You’ll need to change this for
  6492. other resolution modes.
  6493. 2.7
  6494. 250   selects ‘MySprite’
  6495. 2.7
  6496. 280   selects the Mask Plot option GCOL 8.
  6497. 2.7
  6498. 290   plots the sprite at the Mouse selected point
  6499. 2.7
  6500. 300   plots the sprite in a rectangle to show its original colours.
  6501. 2.7
  6502. 340   selects ‘Temp’
  6503. 2.7
  6504. 380   plots ‘Temp’ effectively erasing ‘MySprite’
  6505. 2.7
  6506. 390   plots ‘Temp’ in its rectangle. The effect of 390 has an interest
  6507. ing side-effect. When you run the program move the sprite over the
  6508. rectangle! See what happens!
  6509. 2.7
  6510. The program ‘SpritePlot’ and the sprite file ‘!Sprites’ are on this
  6511. month’s disk but you can use the program by keying it in and also
  6512. creating a masked sprite in mode 15 using SEDIT and saved as !SPRITES.
  6513. 2.7
  6514. The program can obviously be modified to run in other modes. The flicker
  6515. on the sprite could be removed by modifying the program to plot only if
  6516. the mouse has been moved. Ian Smith
  6517. 2.7
  6518. •   Star-Trader Cheats − Here are some ideas and cheats for
  6519. ‘StarTrader’. It is an excellent game, all the more impressive when you
  6520. consider it is written in BASIC!
  6521. 2.7
  6522. Load the main game and enter the EDIT editor. (The main game file is
  6523. ‘$.Resouces.StarTrader. StarTrader’.) You can alter as many as the
  6524. following as you like to make the game a bit easier to get into;
  6525. 2.7
  6526. Line 290 change to: SUN=1 for a SunBurst
  6527. 2.7
  6528.    DEATH=1 for a DeathBlossom
  6529. 2.7
  6530.    CELL=1 for a super energy cell
  6531. 2.7
  6532.    ENG=3 for the most powerful engines (Note ENG=2 & ENG=1 are available
  6533. as well)
  6534. 2.7
  6535.    NUMPT=10 for the number of photon torpedoes. Having 10 doesn’t spoil
  6536. the display!
  6537. 2.7
  6538. Line 390 change CRD to the number of credits you want (STDA is the
  6539. stardate)
  6540. 2.7
  6541. Line 420 change MAXHOL to the size of the hold you want fitted.
  6542. 2.7
  6543. Note: DAMCAP is used in Line 13570 to calculate the remaining hold
  6544. capacity.
  6545. 2.7
  6546. PRC() holds the value of each of the tradegoods you are carrying CTOTAL
  6547. is the total weight of cargo you are carrying at the moment (also used
  6548. in 13570)
  6549. 2.7
  6550. The messages you occassionally get when transporting down to a planet
  6551. are held in code. If you want to see them, then type the following
  6552. changes in immediate mode.
  6553. 2.7
  6554. LOAD “StarTrader”
  6555. 2.7
  6556. DELETE 0,39349
  6557. 2.7
  6558. DELETE 39560,39580
  6559. 2.7
  6560. DELETE 39640
  6561. 2.7
  6562. DELETE 39650,39690
  6563. 2.7
  6564. 39351 DIM CMG$(20)
  6565. 2.7
  6566. 39554 FOR T=0 TO  20
  6567. 2.7
  6568. 39651 NEXT
  6569. 2.7
  6570. PROCCLUE (If <ctrl-B> is used first, the messages can be sent to a
  6571. printer.)
  6572. 2.7
  6573. There is a 50:50 chance of getting a clue on any planet landing. 16
  6574. messages have a 95% chance of being called, the other 4 messages only
  6575. 5%. The rumour sends you to a randomly chosen planet! Some messages are
  6576. tradehints, some are adverts for other games(!) and a couple are very
  6577. useful clues to the solution of the puzzle.
  6578. 2.7
  6579. The planets on which the segments are found and the code are chosen at
  6580. the creation of the universe stage. RUN the game, then immediately save
  6581. it. TYPE in CHEAT4 to get a list of planet numbers where the segments
  6582. are. CHEAT4 also prints out the code letters. These are held in the
  6583. array ZTX()
  6584. 2.7
  6585.  10 REM >CHEAT4
  6586. 2.7
  6587.  20 DIM PKLR(800),GR(800),ANAME$
  6588. 2.7
  6589. (800),TYP(800),SS(800),PO(800)
  6590. 2.7
  6591. ,STARSS(120),PX(120),PZ(120), PC(9),SP(9),PRC(13), UNI(120,12),ZTX(8)
  6592. 2.7
  6593.  30 BB=OPENIN(“:1.xxxxx”):REM
  6594. 2.7
  6595.  change xxxxx to name of
  6596. 2.7
  6597.  SaveGame file
  6598. 2.7
  6599.  40 INPUT# BB,SUN,DEATH,CELL,ENG,
  6600. 2.7
  6601.  FS, PS,SS,AS,PTD,PSD,DAMCAP,HD, TE,NUMPT,PE,EPS,STDA,CRD,PN,SY
  6602. 2.7
  6603.  50 FORT=1TO800:INPUT# BB,PKLR(T),
  6604. 2.7
  6605.  GR(T),ANAME$(T),TYP(T), SS(T),PO(T):NEXTT
  6606. 2.7
  6607.  60 FORT=1TO120:INPUT# BB,SARSS(T)
  6608. 2.7
  6609.  ,PX(T),PZ(T):NEXTT
  6610. 2.7
  6611.  70 FORT=1TO9:INPUT# BB,PC(T),SP(T)
  6612. 2.7
  6613. :NEXTT
  6614. 2.7
  6615.  80 FORT=1TO13:INPUT# BB,PRC(T)
  6616. 2.7
  6617. :NEXTT
  6618. 2.7
  6619.  90 FORZ=1TO119
  6620. 2.7
  6621. 100 FORT=1TO12:INPUT# BB,UNI(Z,T)
  6622. 2.7
  6623. :NEXTT
  6624. 2.7
  6625. 110 NEXTZ
  6626. 2.7
  6627. 120 FORT=1TO8:INPUT# BB,ZTX(T)
  6628. 2.7
  6629. :NEXTT
  6630. 2.7
  6631. 130 CLOSE# BB
  6632. 2.7
  6633. 140 FOR LOOP=1 TO 9:PRINT PC(LOP),
  6634. 2.7
  6635. SP(LOOP)’:NEXT:REM planets
  6636. 2.7
  6637. 150 FOR LOOP=1 TO 8:PRINTCHR$(64+
  6638. 2.7
  6639. ZTX(LOOP)):NEXT:REM code
  6640. 2.7
  6641. You get a nice fanfare when you collect a segment. The percentage
  6642. chances reported during a scan can be as low as 45% or as high as 90% on
  6643. a planet which actually has a segment.
  6644. 2.7
  6645. If you have two drives, it is quite easy to use drive 1 as the GameSave
  6646. drive (as in the program above). Just change (input$) in Lines 3770,
  6647. 4020 and 4050 to (“:1.”+input$). Dave Kent
  6648. 2.7
  6649. •   TV output from Archimedes? − It is possible to connect a TV to an
  6650. Archimedes, though only in monochrome and via a video.  Connect a wire
  6651. (co-ax) from a phono plug plugged into the Archimedes mono video socket
  6652. to pin 20 (centre core of Co-ax) and any one of the many 0V lines (i.e.
  6653. connect the braid screen to 0V) on a SCART plug. This means that it only
  6654. works on video machines with a SCART socket on them (if no SCART socket,
  6655. then connect to VIDEO IN via a phono or BNC plug). This also means that
  6656. you can make demo videos and stuff by taping the pictures. Sound can be
  6657. connected to pins 2 and 6, I think, never tried it! (See Archive 2.2 p
  6658. 6)  Does anyone now how to convert the Archie mono out to colour?
  6659. Plugging the Archie SCART cable to the video doesn’t work! Oliver
  6660. Cornes.
  6661. 2.7
  6662. •   Using First Mail − At first, I regarded First Word Plus as a very
  6663. ordinary word processor. The need to keep reformatting with <f12> seemed
  6664. to be a step backward. However First Mail changes the picture for me.
  6665. Here are one or two ideas on how to use First Mail for handling ordinary
  6666. day-to-day cor-respondence.
  6667. 2.7
  6668. I “merge from” a file carrying my letterhead. In fact I have a few
  6669. different letterheads for different purposes. In addition to the
  6670. letterhead my “from” file has the following First Mail commands:
  6671. 2.7
  6672. longdate
  6673. 2.7
  6674. input “address file?”, address
  6675. 2.7
  6676. input “text file?”, text
  6677. 2.7
  6678. includefile dat.address
  6679. 2.7
  6680. Dear
  6681. 2.7
  6682. includefile doc.text
  6683. 2.7
  6684. includefile dat.address
  6685. 2.7
  6686. (The bits in italic that should be in light type. It is not obvious
  6687. which the light bits should be; but see the note on p. 206 of the First
  6688. Word Plus manual.)
  6689. 2.7
  6690. The system asks me for an address file and then a file containing the
  6691. text of the letter, both of which it merges with the letterhead. The
  6692. second printing of the address comes after a hard page break. Since I
  6693. specify pauses on page breaks, this allows me to remove the letter from
  6694. the printer and replace it with the envelope (or sticker) for the second
  6695. address to be printed on that. I can cancel this when I do the draft
  6696. copy, which I keep for my own files. I save my letter texts in the doc
  6697. directory and addresses in the dat directory. This allows me to use the
  6698. same name for both if that is more convenient.
  6699. 2.7
  6700. Incidentally I use a brother daisywheel for most of my letter quality
  6701. printing; and I have configured the driver to print my letterhead in
  6702. bold red. A nice feature of First Word Plus is that you can have several
  6703. drivers for the same printer if you give them different names. Not only
  6704. that, but with a daisy-wheel you can have two configurations on the same
  6705. driver by making the NLQ configuration different from the draft
  6706. configuration, though of course, the terms draft and NLQ will have no
  6707. real meaning for a daisywheel.
  6708. 2.7
  6709. There are some errors in the Brother driver supplied, by the way; so
  6710. check with the manual, especially if you are Danish or are in the habit
  6711. of using some of the more obscure symbols. The First Word Plus manual is
  6712. a bit vague about full pathnames, too. For instance, to install a
  6713. different default printer you have to type, say,
  6714. 2.7
  6715. *copy 1wp.cfg.epson_fx resources.
  6716. 2.7
  6717. 1wp.1wp_print
  6718. 2.7
  6719. I find the First Word Plus file window most useful for exploring discs.
  6720. If you click on the window exit symbol you get the parent directory.
  6721. Clicking on a directory name in the window lists that directory in the
  6722. window as well as selecting it in the directory slot. Glyn Emery.
  6723. 2.7
  6724.  
  6725. 2.7
  6726. We begin a new section this month to help you get to grips with RISC-OS.
  6727. When you buy RISC-OS, you get a disc full of information from software
  6728. houses (see list below) about how to get their software running under
  6729. RISC-OS, but I suspect that because RISC-OS is so new, there will be
  6730. lots for us all to learn − hence this column.We really need a volunteer
  6731. to be the editor of this corner − someone to whom I can send all the
  6732. info and who will then collate it, check it and regurgitate it to me
  6733. (preferably via Eureka II for speed). Anyway, Mike Harrison, Matthew
  6734. Treagus, Keith Milner and Ting Kuei start us off.
  6735. 2.7
  6736. •   Flashing screens − I’ve just got hold of the release RISC-OS User
  6737. Guide and noticed that it does not seem to mention the fact that in
  6738. modes 21, 24 and 28, the screen blanks when accessing floppies, due to
  6739. the high DMA rate. I’m sure many dealers will get calls from worried
  6740. users who think that fitting RISC-OS has damaged their machine because
  6741. of the screen flashing on and off!
  6742. 2.7
  6743. •   Logistix − Logistix users must replace the Floating Point Emulator
  6744. in the Library of the Log-istix Disc (version 2.50) with the later one
  6745. which is supplied with RISC-OS, i.e. FPE version 2.60. It can also be
  6746. found on the ABC Compiler Disc. If this is not done Logistix, will not
  6747. run correctly.
  6748. 2.7
  6749. •   TWIN − If, like me, you are annoyed at the delay in loading TWIN
  6750. when editing programs, especially with BASIC using TWINO8, make an Obey
  6751. file that does the following :
  6752. 2.7
  6753. Set Run$Path Ram:,<Run$Path>
  6754. 2.7
  6755. Copy Twin Ram:Twin f~c
  6756. 2.7
  6757. (Ensure that your configured RamFS size is big enough first!). After
  6758. running this, Twin will be instantly loaded from Ram Disk. You can of
  6759. course also include in the file a *Key command to define your favourite
  6760. function key to call Twin, e.g.
  6761. 2.7
  6762.  Key 1 |UTWINO8|M
  6763. 2.7
  6764. For BASIC. The |U deletes any crud which may have been on the command
  6765. line before you hit <f1>.
  6766. 2.7
  6767. •   Virsuses on RISC-OS!!! − I wonder how many people will look at this
  6768. in panic. Don’t worry. There is a virus on RISC-OS, even before it is
  6769. released, but it is totally harmless. In fact it is quite fun. First, a
  6770. brief description of how most viruses work:
  6771. 2.7
  6772. Most business machines load their operating system from disk. So, in
  6773. order to ‘virus’ one of these machines, the offending program just
  6774. becomes part of the operating system in some way. It copies itself onto
  6775. other discs with operating systems on and soon every copy of the OS you
  6776. have is “infected”.
  6777. 2.7
  6778. On a sensible computer, such as the Archimedes(!) the operating system
  6779. is on ROM, and cannot be altered! Thus if someone decides to write a
  6780. virus program, once it is detected, turning the machine off will remove
  6781. it. It is, however, possible to install a virus on other files on disc.
  6782. This is much more difficult to do, is easier to detect and easier to
  6783. remedy. For instance, the !BOOT file is a common file to be found on a
  6784. disc, and a virus could conceivably attach onto this, although it would
  6785. be very difficult since every !BOOT file is different.
  6786. 2.7
  6787. I will not disclose how the RISC-OS virus installs itself as it will
  6788. only encourage people to write viruses. I will say, however, that once
  6789. detected, it is ((very simple)) to remove it with no after effects. If
  6790. the virus (which actually originates from Acorn!) appears on your disc,
  6791. not much actually happensÉ or at least it appears that way. You are
  6792. using the desktop as normal and suddenly, a small fish appears on the
  6793. screen and swims across, behind all the windows, leaving a trail of
  6794. bubbles which rise to the top of the screen and disappear. Several more
  6795. fish swim backwards and forwards on the desktop until the machine is
  6796. reset. This virus is totally harmless, the only ill effect is to use up
  6797. a bit of processor time! In fact, I have installed it deliberately as it
  6798. is quite relaxing!
  6799. 2.7
  6800. Another virus we have heard of is the FF8 virus which adds itself to
  6801. filetype FF8 files. It displays a message and prevents the affected file
  6802. from running on the 13th of the month.This it is a real pain if you are
  6803. not careful, i.e. if you forget to turn the computer off before running
  6804. a new program!  There is a detector program available (downloadable from
  6805. area 2 on Eureka II) but it will only check for the existence of the
  6806. virus and will not destroy it.
  6807. 2.7
  6808. •   Manuals − Q: When RISC-OS is available, does it mean that the
  6809. manuals I purchased are outdated or will Acorn publish a cheap edition
  6810. to add to it?
  6811. 2.7
  6812. A: The bulk of the PRM remains correct, however there is a wealth of
  6813. brand new information and a new PRM will be out in due course, probably
  6814. in three volumes!
  6815. 2.7
  6816. The following firms have provided help on RISC-OS compatibility. The
  6817. information is on the Support Disc that comes with RISC-OS.
  6818. 2.7
  6819. Abacus Training Ltd
  6820. 2.7
  6821. Ace Computing
  6822. 2.7
  6823. Acorn Computers Ltd
  6824. 2.7
  6825. AVP Computing
  6826. 2.7
  6827. Cambridge Micro Systems Ltd
  6828. 2.7
  6829. Clares Micro Supplies Ltd
  6830. 2.7
  6831. Colton Software
  6832. 2.7
  6833. Dabs Press
  6834. 2.7
  6835. Dixon and Dixon
  6836. 2.7
  6837. Emmerich (Berlon) Ltd
  6838. 2.7
  6839. GEM Electronics
  6840. 2.7
  6841. Intelligent Interfaces Ltd
  6842. 2.7
  6843. Institute of Ophthalmologists
  6844. 2.7
  6845. Lendac Data Systems Ltd
  6846. 2.7
  6847. Lingenuity (Lindis International Ltd)
  6848. 2.7
  6849. Magenta Research Ltd
  6850. 2.7
  6851. Maze Technology
  6852. 2.7
  6853. Meadow Computers
  6854. 2.7
  6855. Minerva Systems Ltd
  6856. 2.7
  6857. Mitre Software Ltd
  6858. 2.7
  6859. Oak Professional Software Ltd
  6860. 2.7
  6861. Silicon Vision Ltd
  6862. 2.7
  6863. Watford Electronics Ltd
  6864.  
  6865.  
  6866. •   Floppy programs on hard discs − Here’s the best method I’ve come
  6867. across of getting floppy programs to run on a HD machine. You need two
  6868. FFF type files (or Obey if you want) One called ‘Floppy’ should contain:
  6869. 2.8
  6870. *CON. Drive 0
  6871. 2.8
  6872. *CON. NoBoot
  6873. 2.8
  6874. The other called Hard should be:
  6875. 2.8
  6876. *CON. Drive 4
  6877. 2.8
  6878. *CON. Boot
  6879. 2.8
  6880. If you put these in the library you can then
  6881. 2.8
  6882. *Floppy
  6883. 2.8
  6884. <ctrl-break>
  6885. 2.8
  6886. <shift-break>
  6887. 2.8
  6888. do whatever else
  6889. 2.8
  6890. <ctrl-break>
  6891. 2.8
  6892. *DIR :4
  6893. 2.8
  6894. *hard
  6895. 2.8
  6896. <ctrl-break>
  6897. 2.8
  6898. (This assumes you have a !Boot on your hard disc.) Martyn Lovell
  6899. 2.8
  6900. •   Head alignment problems? − If you are getting disc errors and
  6901. suspect that the problem might be head alignment, one way of confirming
  6902. this is to use the disc copier program that you will find on Share-ware
  6903. N¼2. The program does a check of the whole disc to find bad sectors. If
  6904. one of the heads is misal-igned, you will probably find that all the bad
  6905. sectors reported are on one or other of the heads. Then it’s time to
  6906. take it off to your local dealer for repair.
  6907. 2.8
  6908. •   Hearsay − If you need to change modem baud rates with ATB3 or ATB0
  6909. after calling one remote system and before calling another, you can do
  6910. so by using a dial prefix in the modem driver edit screen by putting
  6911. “ATB3D” or “ATB0D” as appropriate.
  6912. 2.8
  6913. •   Matrix Procedures and Functions − This was prompted by Steve Drain’s
  6914. article in Archive 2.1 p.17 where he stated that a numerical method for
  6915. the inverse of a square matrix needs a good guess of the inverse and
  6916. uses the transposed matrix as a starting point. His excellent program
  6917. has been timed to invert a 20 x 20 matrix to 1 part in 10^9 in approx-
  6918. imately 10 seconds.
  6919. 2.8
  6920. A good guess or even a desirable result can be ob-tained by a procedure
  6921. described below. It calculates an inverse of 20x20 matrix in about 280
  6922. centisec-onds giving an error in the non-diagonal elements of the
  6923. identity matrix of less than 1 part in 10^6.
  6924. 2.8
  6925. The method used is based on the following. The matrix M to be inverted
  6926. is premultiplied by its transposed M‘, giving M’M. The result is
  6927. decomposed in a lower triangular matrix L satisfying the identity
  6928. LL’=M’M. Then I, which is the inverse of L, can be determined in a
  6929. straight forward way. Matrix I’I thus equals the inverse of M’M, and
  6930. finally I’IM‘ gives the result wanted. This is correct as can be seen
  6931. when premultiplying a vector x by M giving a vector v, and solving for
  6932. x.
  6933. 2.8
  6934. Mx=v ==> M’Mx=M’v==> LL’x=M’v ==> I’ILL’x=I’IM’v ==> x=I’IM’v
  6935. 2.8
  6936. In fact, this is the least square solution for vector x, i.e. r
  6937. equations with c unknown variables ( r>=c ) are solved using the
  6938. criterium that the sum of the squares of the deviations to a solution of
  6939. vector x obtains a minimal value.
  6940. 2.8
  6941. The program presented below uses PROC lst_sq_inv to determine the
  6942. ‘inverse’ Mi of any matrix M. If M is a square matrix then MiM = E and
  6943. also MMi = E, E being the identity matrix. As an ‘extra’, the determi
  6944. nant of the square matrix M can easily be calculated. To my knowledge
  6945. the method is numerically very stable.
  6946. 2.8
  6947.  10 REM >Matrix_Inv
  6948. 2.8
  6949.  20 :
  6950. 2.8
  6951.  30 *********************************
  6952. 2.8
  6953.  40 REM Inverting an arbitrary matrix
  6954. 2.8
  6955.  50 REM E.D. Engelhardt, March 1989 
  6956. 2.8
  6957.  60 *********************************
  6958. 2.8
  6959.  70 :
  6960. 2.8
  6961.  80 REM *** Generate random matrix M,
  6962. 2.8
  6963.  col% columns and row% rows
  6964. 2.8
  6965.  90 CLS
  6966. 2.8
  6967. 100 PRINT‘“ Inverting an arbitrary
  6968. 2.8
  6969.  matrix“‘
  6970. 2.8
  6971. 110 REPEAT:INPUT“ Rows            :
  6972. 2.8
  6973.  “row%:UNTIL row%>0
  6974. 2.8
  6975. 120 REPEAT:INPUT“ Columns <= rows :
  6976. 2.8
  6977.  “col%:UNTIL col%<=row% AND col%>0
  6978. 2.8
  6979. 130 CLS:PRINT‘“ Rows    : ”STR$row%
  6980. 2.8
  6981. ‘“ Columns : ”STR$col%
  6982. 2.8
  6983. 140 row%-=1:col%-=1
  6984. 2.8
  6985. 150 DIM M(row%,col%)
  6986. 2.8
  6987. 160 FOR r%=0TOrow%:FOR c%=0TOcol%:
  6988. 2.8
  6989. M(r%,c%)=RND(1)*SGN(0.5-RND(1)) :NEXT:NEXT
  6990. 2.8
  6991. 170 :
  6992. 2.8
  6993. 180 start%=TIME
  6994. 2.8
  6995. 190 :
  6996. 2.8
  6997. 200 REM Determine the ‘least square’
  6998. 2.8
  6999.  inverse Mi of M. Result : Mi.M is equal to the identity matrix E.
  7000. 2.8
  7001.  If rows = cols also M.Mi = E.
  7002. 2.8
  7003. 210 :
  7004. 2.8
  7005. 220 DIM Mi(col%,row%):PROClst_sq_inv
  7006. 2.8
  7007. (M(),Mi())
  7008. 2.8
  7009. 230 end%=TIME
  7010. 2.8
  7011. 240 :
  7012. 2.8
  7013. 250 PRINT‘“ Time(centisecs) : ”;
  7014. 2.8
  7015. STR$(end%-start%)‘’
  7016. 2.8
  7017. 260 :
  7018. 2.8
  7019. 270 PROCprint
  7020. 2.8
  7021. 280 END
  7022. 2.8
  7023. 290 ————————————————-300 DEFPROClst_sq_inv(R(),Ri())
  7024. 2.8
  7025. 310 REM Ri is ‘least square’ inverse
  7026. 2.8
  7027.  of R, i.e. Ri.R = E (identity                matrix). If rows = cols
  7028. also
  7029. 2.8
  7030.  R.Ri = E.
  7031. 2.8
  7032. 320 REM Dimensions R(v%,h%),Ri(h%,v%)
  7033. 2.8
  7034.  ==> v% : rows , h% : columns
  7035. 2.8
  7036. 330 REM E.D. Engelhardt, March 1989
  7037. 2.8
  7038. 340   :
  7039. 2.8
  7040. 350 LOCAL RtR(),L(),I(),v%,h%,c%,r%,t%
  7041. 2.8
  7042. 360 v%=DIM(R(),1):h%=DIM(R(),2)
  7043. 2.8
  7044. 370 DIM RtR(h%,h%),L(h%,h%),I(h%,h%)
  7045. 2.8
  7046. 380 :
  7047. 2.8
  7048. 390 REM Determine transpose of R
  7049. 2.8
  7050. 400 FOR r%=0 TO v%:FOR c%=0 TO h%:
  7051. 2.8
  7052. Ri(c%,r%)=R(r%,c%):NEXT:NEXT
  7053. 2.8
  7054. 410 :
  7055. 2.8
  7056. 420 REM Calculate square matrix to be
  7057. 2.8
  7058.  inverted
  7059. 2.8
  7060. 430 RtR()=Ri().R()
  7061. 2.8
  7062. 440 :
  7063. 2.8
  7064. 450 REM Calc lower triangle L of RtR
  7065. 2.8
  7066. 460 FOR c%=0 TO h%:FOR r%=c% TO h%
  7067. 2.8
  7068. 470   L(r%,c%)=RtR(r%,c%):t%=c%-1
  7069. 2.8
  7070. 480   IF t%>=0 FOR t%=t%TO0STEP-1:
  7071. 2.8
  7072. L(r%,c%)=L(r%,c%)-L(r%,t%)*
  7073. 2.8
  7074. L(c%,t%):NEXT
  7075. 2.8
  7076. 490   IF r%>c% THEN L(r%,c%)=L(r%,c%)
  7077. 2.8
  7078. /L(c%,c%) ELSE L(r%,c%)=SQR L(r%,c%)
  7079. 2.8
  7080. 500 NEXT:NEXT
  7081. 2.8
  7082. 510 :
  7083. 2.8
  7084. 520 REM If R is square (rows = cols)
  7085. 2.8
  7086.  its determinant equals the product of the diagonal elements of L. The
  7087. determinant of RtR equals the
  7088. 2.8
  7089.  square of the determinant of L.
  7090. 2.8
  7091. 530 :
  7092. 2.8
  7093. 540 REM Invert triang matrix L to I
  7094. 2.8
  7095. 550 FOR c%=0 TO h%:FOR r%=c% TO h%
  7096. 2.8
  7097. 560   FOR t%=c% TO r%-1:I(r%,c%)=
  7098. 2.8
  7099. I(r%,c%)-L(r%,t%)*I(t%,c%):NEXT
  7100. 2.8
  7101. 570   IF r%>c% THEN I(r%,c%)=I(r%,c%)
  7102. 2.8
  7103. /L(r%,r%) ELSE I(r%,c%)=1/L(r%,r%)
  7104. 2.8
  7105. 580 NEXT:NEXT
  7106. 2.8
  7107. 590 :
  7108. 2.8
  7109. 600 REM Determine transpose L of
  7110. 2.8
  7111.  inverse triangle I
  7112. 2.8
  7113. 610 FOR r%=0 TO h%:FOR c%=0 TO
  7114. 2.8
  7115.  h%:L(c%,r%)=I(r%,c%):NEXT:NEXT
  7116. 2.8
  7117. 620 :
  7118. 2.8
  7119. 630 REM Inverse matrix of R is Ri
  7120. 2.8
  7121. 640 RtR()=L().I():Ri()=RtR().Ri()
  7122. 2.8
  7123. 650 :
  7124. 2.8
  7125. 660 ENDPROC
  7126. 2.8
  7127. 670 ————————————————-680 DEFPROCprint
  7128. 2.8
  7129. 690 VDU 14
  7130. 2.8
  7131. 700 PRINT“ ******** Elements Matrix”‘
  7132. 2.8
  7133. 710 FOR r%=0 TO row%:FOR c%=0 TO
  7134. 2.8
  7135.  col%:PRINT M(r%,c%):NEXT:PRINT:NEXT
  7136. 2.8
  7137. 720 PRINT“ ******** Elements inverse
  7138. 2.8
  7139.  Matrix“‘
  7140. 2.8
  7141. 730 FOR r%=0 TO col%:FOR c%=0 TO row%
  7142. 2.8
  7143. :PRINT Mi(r%,c%):NEXT:PRINT:NEXT
  7144. 2.8
  7145. 740 DIM E(col%,col%)
  7146. 2.8
  7147. 750 E()=Mi().M()
  7148. 2.8
  7149. 760 PRINT“ ******** Elements of
  7150. 2.8
  7151.  Inverse_Matrix.Matrix“‘
  7152. 2.8
  7153. 770 FOR r%=0 TO col%:FOR c%=0 TO col%
  7154. 2.8
  7155. :PRINT E(r%,c%):NEXT:PRINT :NEXT
  7156. 2.8
  7157. 780 VDU 15
  7158. 2.8
  7159. 790 ENDPROC
  7160. 2.8
  7161. •   Repton 3 − There is a bug in screen E of WORK, so to get past it,
  7162. you will need to know the next password which is COUNTER.
  7163. 2.8
  7164. •   Three floppies under Arthur − Here is a solution to the problem of
  7165. three floppies on the desktop (Archive 2.7.12). Enter the following in a
  7166. file called ‘Desktop’ in the library directory, use *BUILD or a text
  7167. editor such as Twin to enter it.
  7168. 2.8
  7169. *BASIC
  7170. 2.8
  7171. LOAD “DESKFS:DeskTopMgr2”
  7172. 2.8
  7173. 11 OSCLI “DESKFS”
  7174. 2.8
  7175. 12291 IFfloppies%>2 THEN PROCsys_
  7176. 2.8
  7177. addtoiconbar_left(“floppy2”,
  7178. 2.8
  7179. “disc3.5”,&301A,icon_fgcol,
  7180. 2.8
  7181. icon_bgcol, icon_width%)
  7182. 2.8
  7183. 28600 DEFFNselect_floppy2
  7184. 2.8
  7185. 28610 =0
  7186. 2.8
  7187. 28620 DEFFNmenu_floppy2
  7188. 2.8
  7189. 28630 PROCsys_definetextmenu
  7190. 2.8
  7191. (“floppy2”,“floppy :2”,“Format”)
  7192. 2.8
  7193. 28640 =0
  7194. 2.8
  7195. 28650 DEFFNaction_floppy2
  7196. 2.8
  7197. 28660 =FNfilehandler_open_dir
  7198. 2.8
  7199. (“-adfs-:2”,“Floppy :2”,0)
  7200. 2.8
  7201. 28670 DEFFNmenuselect_floppy2
  7202. 2.8
  7203. 28680 CASEitem0% OF
  7204. 2.8
  7205. 28690 WHEN0: PROCfilehandler_
  7206. 2.8
  7207. formatfloppy(“2”)
  7208. 2.8
  7209. 28700 ENDCASE
  7210. 2.8
  7211. 28710 =0
  7212. 2.8
  7213. RUN
  7214. 2.8
  7215. When you wish to use the three floppy version of the desktop, instead of
  7216. typing *DeskTop, enter */DeskTop, this will ensure that the upgrade
  7217. program in the library directory is run instead of activating the
  7218. desktop in the normal way.
  7219. 2.8
  7220. Unfortunately, there is no way of permanently updating the desktop so
  7221. that you can power up into the desktop with three floppies since it is
  7222. held in ROM which obviously cannot be changed.
  7223. 2.8
  7224. If you wish to power up in the desktop with three floppies then you
  7225. could do the following:
  7226. 2.8
  7227. *Configure Boot
  7228. 2.8
  7229. *Configure Language 0
  7230. 2.8
  7231. and setup a !Boot file as follows:
  7232. 2.8
  7233. */Desktop
  7234. 2.8
  7235. ensure that when you switch the computer on, your boot disc is in drive
  7236. 0 (or your default drive as configured with *Configure Drive) and the
  7237. desk top will appear after a short delay.
  7238. 2.8
  7239. N.B. No damage will be caused to the disc in powering up with the disc
  7240. in the drive since the latch will be across the disc surface and the
  7241. disc heads not in contact with the disc surface.
  7242. 2.8
  7243. The other solution is to upgrade to RISC-OS which can support up to four
  7244. floppies! Darren Jackson
  7245. 2.8
  7246. •   Zarch − To put Zarch onto a hard disk, use....
  7247. 2.8
  7248. *UNPLUG SoundChannels
  7249. 2.8
  7250. *ZARCH
  7251. 2.8
  7252. When error occurs type the following,
  7253. 2.8
  7254. *RMREINIT SoundChannels
  7255. 2.8
  7256. *SAVE :4.ZARCHcopy 8000+20800
  7257. 2.8
  7258. *BUILD :4.ZARCHgo
  7259. 2.8
  7260. LOAD ZARCHcopy
  7261. 2.8
  7262. MEMORYA E1AC E1A0F00E
  7263. 2.8
  7264. CHANNELVOICE 1 6
  7265. 2.8
  7266. CHANNELVOICE 2 7
  7267. 2.8
  7268. CHANNELVOICE 3 8
  7269. 2.8
  7270. CHANNELVOICE 4 9
  7271. 2.8
  7272. GO 1FF30
  7273. 2.8
  7274. Then press <escape>. Type ZARCHgo to run the copy from hard disk. Tony
  7275. Porter
  7276. 2.8
  7277.  
  7278. 2.8
  7279. First Word Plus Extended Dictionary
  7280. 2.8
  7281. I was asked to review the First Word Plus Extended Dictionary which is
  7282. available from Science Frontiers. It seems unfair to review it in only
  7283. one paragraph, but Paul’s maxim is, “Space in Archive is at a premium,
  7284. so say what is worth saying as briefly as possible, then shut up!”
  7285. (Well, that’s the jist of what I say! Ed.)
  7286. 2.8
  7287. First Word Plus Extended Dictionary comprises an 80,000 word dictionary
  7288. which replaces that in the Acorn package, and three specialized
  7289. supplementary dictionaries covering computer terms, geographical
  7290. locations and Christian names. It is an entirely competent package,
  7291. though necessarily not the most fascinating in content. If you need more
  7292. words in your dictionary, buy it, but if you need to work with large
  7293. documents, do not load it, as bigger dictionaries do take up more space.
  7294. 2.8
  7295. FWP Extended Dictionary costs £6.95 (£6.50 from Archive) and is produced
  7296. by Science Frontiers.
  7297. 2.8
  7298. From FWP to DTP?
  7299. 2.8
  7300. Although it is not strictly the business of the First Word Plus column,
  7301. I took a good look at the Desktop Publishing program when visiting the
  7302. Acorn stand at the Which Computer? Show. It should be available a few
  7303. weeks after RISC-OS and is reported to be “finished” and about to go
  7304. into production. However, it was apparently not the “finished” version
  7305. at the show. My informant assures me that the production version will be
  7306. even better, which should certainly be good indeed. Even the present
  7307. version has a ‘secret’ feature which is quite impressive and even Apple
  7308. cannot match it.
  7309. 2.8
  7310. <ctrl−A> Solution?
  7311. 2.8
  7312. I have discovered why my “<ctrl-a> makes a bleep” modules reported in
  7313. Archive 2.5 p. 18 absolutely refused to work: the answer is on the top
  7314. of page 34 of the Programmer’s Reference Manual: never use OS_WriteC
  7315. routines when you have intercepted an interrupt. The solution (but don’t
  7316. hold your breath) is to insert a <ctrl-g> into the input buffer. This
  7317. works absolutely perfectly − except in FWP, where it is interpreted as a
  7318. call to read the ruler!!
  7319. 2.8
  7320. No-one else has produced a solution which actually works, so the small
  7321. prize is still unclaimed.
  7322. 2.8
  7323. Shareware disk N¼6
  7324. 2.8
  7325. We get a lot of enquiries about printer drivers. The problem is that we
  7326. do not have that many different kinds of printer, so cannot help much.
  7327. Besides, printer drivers are (however necessary and satisfactory a
  7328. solution they may be) a pain and a bore, except when they are to drive
  7329. the printer you use. I am trying to compile a disk of all the contrib
  7330. uted “goodies”, especially printer drivers and related information and
  7331. ideas. If you have a contribution, please let me have it in the next
  7332. couple of weeks. We have printer drivers for: Taxan-Kaga KP810 = Canon
  7333. PW 1080; Citizen 120; Epson LX800 and LQ500; Star LC10 and NL10;
  7334. Panasonic KXP1080; H-P DeskJet. Quite a few of these have interesting
  7335. variants and associated ideas which may be useful for doing the special
  7336. things you want to do with your printer.
  7337. 2.8
  7338. Once the shareware disk is available, printer driver enquiries will be
  7339. at the bottom of the pile!
  7340. 2.8
  7341. (Mike sent me a pre-release version of this which I published as
  7342. Shareware N¼6, thinking it was the finished article. Ooops! We will
  7343. continue to supply N¼6 as it is and then offer free up-grades when the
  7344. final version is ready. Sorry about that! Ed.)
  7345. 2.8
  7346. Two related matters
  7347. 2.8
  7348. •   If you get the monthly disk, you will probably have installed the
  7349. IntModule from Steve Hoare (Archive 2.6, p. 44), and you will agree with
  7350. me that it is quite the best thing that has happened to First Word Plus
  7351. since its launch! I am sure that my life-expectancy has been increased
  7352. by being able to access the “*” commands we all love (and hate). If you
  7353. have not installed it, copy the IntModule to your 1st Word startup disk,
  7354. then modify !boot by adding lines 23 and 26 as follows:
  7355. 2.8
  7356. 23 *rmrun IntModule
  7357. 2.8
  7358. 26 *Interrupt 15
  7359. 2.8
  7360. Now if you press <ctrl-o>, the screen goes bright blue and gives you a *
  7361. prompt. Create your directories, mount disks or whatever, then just *
  7362. <return> and you are back. Wonderful. If you do not get the disks, more
  7363. fool you, this one was worth a year’s subscription, but it will be on
  7364. the proposed “shareware” disk.
  7365. 2.8
  7366. •   Just who do you think we are? Not very different from you is the
  7367. answer, I guess. I suspect that most of the contributors to Archive are
  7368. either people who enjoy computers as a hobby which can be useful, people
  7369. who use computers as part of their work, but are not professionals in
  7370. computing, or students or teachers of computing. I am actually a vet.
  7371. who does human genetics and immunology research, approaching fifty, bald
  7372. and paunchy! The point is, please do not expect too much from us/me. I
  7373. actually took this column on when a broken collar-bone got in the way of
  7374. decorating! Sadly, bones healÉ
  7375. 2.8
  7376. Two quickies
  7377. 2.8
  7378. •   If you have more than one sprite in a file, FWP only loads the first
  7379. sprite.
  7380. 2.8
  7381. •   There is a funny bug in the spelling list : FABRICATION is flagged
  7382. as wrong, but it appears when you browse. To add confusion, when you ask
  7383. to guess, it comes up with faArication, which is unbrowsable!! Thanks to
  7384. Colin Garlick. A review of letters received earlier reveals that the
  7385. problem is more widespread than this: Kenneth Gardner rep-orts that the
  7386. same (?) bug affects fable, fabric, -ate, -ated, -ation, fabulous, -ly,
  7387. fab, haar, maar, nascelle, oaf, zag. Kenneth provides more data on
  7388. making merged supplementary dictionaries, but the problem is obviously a
  7389. bug. Over to you Acorn!
  7390. 2.8
  7391. FWP and RISC-OSÉ
  7392. 2.8
  7393. The support disk which comes with RISC-OS has the necessary instructions
  7394. for conversion and the files. It is in the Acorn directory.
  7395. 2.8
  7396. It may be easier to have Edit installed and the mode set to 0 before you
  7397. start. Then you can have a decent RAMfs space for the copied files
  7398. (assuming you do not have two drives). You can keep the instructions in
  7399. sight this way.
  7400. 2.8
  7401. Éand the IntModule
  7402. 2.8
  7403. It is all quite smooth, but if you want the splendid IntModule facility
  7404. to give you access to the OS, it is a bit more complicated. Edit has no
  7405. “load” command. You load things by grabbing their icons and dropping
  7406. them on the installed Edit icon. But it is not obvious how to get at the
  7407. “Obey” files in the !1stWord+ directory from the desktop. The secret is
  7408. to hold down shift while clicking on the !1stWord+ directory. You should
  7409. be a bit careful about what you do, so make a backup before mucking
  7410. about. Now edit it as follows:
  7411. 2.8
  7412. a)   (This is most important.) Rename the !Run file you got from the
  7413. Support Disc as, e.g. !RunAcorn.
  7414. 2.8
  7415. b)   Insert tthree lines before that beginning “run” (next to last) (the
  7416. third line is optional − it turns the caps lock off)
  7417. 2.8
  7418. rmload $.intmodule
  7419. 2.8
  7420. interrupt 15
  7421. 2.8
  7422. fx202,48 REM
  7423. 2.8
  7424. c)   Save as !Run
  7425. 2.8
  7426. d)   Check that the file type is obey. If not, get an OS prompt by
  7427. pressing f12 on the desktop and “Setfiletype !run obey”.
  7428. 2.8
  7429. e)   Remember to copy IntModule onto the disk in directory $.
  7430. 2.8
  7431. It should work, accessing the OS when <ctrl-O> is pressed, though I get
  7432. a white border around the top and right after going to the OS but it
  7433. seems to go away, though.
  7434. 2.8
  7435. I suspect there are a few missing twiddly bits about ensuring that the
  7436. correct directory names are used, so I still have some reading to do.
  7437. More next month!
  7438. 2.8
  7439. It also happens that you can edit obey files in FWP, and further, FWP is
  7440. not squeemish about loading the “Obey” files from an application
  7441. directory. If you do this you will certainly have to set the filetype.
  7442. 2.8
  7443. First Mail
  7444. 2.8
  7445. Here are a couple more tips on 1st Mail from Glyn Emery:
  7446. 2.8
  7447. Mail merging normally means sending the same, or very slightly differ
  7448. ent, letters to a number of recipients. I recently had occasion to turn
  7449. this process on its head and send several different letters to the same
  7450. recipient; but I found 1st Mail up to the task. The occasion was that I
  7451. had to write reports on a batch of candidates, which, for the conveni
  7452. ence of his filing system, I prepared in the form of a batch of separate
  7453. letters all addressed to the administrator involved. To print them I
  7454. prepared a “merge from” file as follows:
  7455. 2.8
  7456. read text
  7457. 2.8
  7458. display “text letter started”
  7459. 2.8
  7460. includefile letterhead
  7461. 2.8
  7462. includefile dat.administrator
  7463. 2.8
  7464. Dear Mr Administrator
  7465. 2.8
  7466. includefile doc.text
  7467. 2.8
  7468. Yours sincerely
  7469. 2.8
  7470. display “letter finished”
  7471. 2.8
  7472. repeat
  7473. 2.8
  7474. “text” here is used as a 1st Mail keyword. The file “letterhead”
  7475. incorporates the date. I put a hard page break just before the repeat
  7476. command to make the sheet-feeder on my printer pick up the next piece of
  7477. A4. The “display” commands were put in during development and proved to
  7478. be too confidence-giving to be deleted. The file dat.administrator is
  7479. the administrator’s address.
  7480. 2.8
  7481. The reports, together with a covering letter were prepared as separate
  7482. files; and a datafile was prepared listing the file names. This was
  7483. saved in the dat. directory, not forgetting to switch off WP mode before
  7484. saving it. If you don’t switch off WP mode the merge tends to “hang”. I
  7485. don’t know why.
  7486. 2.8
  7487. The second point is that I have incorporated Steve Hoare’s IntModule
  7488. (Archive 2,6 p44) into the libraries of my letter-writing discs.
  7489. Unfortunately Steve’s suggestion to use <ctrl-@> does not quite work for
  7490. me, because the £ key seems to return ASCII 0 in the First Word Plus
  7491. context, presumably in order that different codes for £ can be included
  7492. to satisfy different printers. Steve, being in America, probably had no
  7493. occasion to notice this. What I did in the end was to include
  7494. 2.8
  7495. *RMLoad %.IntModule
  7496. 2.8
  7497. *Interrupt 205 1stMail
  7498. 2.8
  7499. into the startup program for First Word Plus, and
  7500. 2.8
  7501. *RMLoad %.IntModule
  7502. 2.8
  7503. *Interrupt 205 1stWord+
  7504. 2.8
  7505. into the startup program for 1stMail. I can then use the “insert” key to
  7506. toggle between the two, and save quite a lot of keystrokes in doing so.
  7507. Notice that I had to use % in the RMLoad command but not in the
  7508. Interrupt command because % appears in my Run$Path but not in my
  7509. File$Path.
  7510. 2.8
  7511. An interesting application for FWP
  7512. 2.8
  7513. Dave Livsey
  7514. 2.8
  7515. Those of you who, like me, have to report on the progress of large
  7516. numbers of individuals of various levels of ability (i.e. teachers!) and
  7517. are the proud possessors of an Archimedes and First Word Plus now have
  7518. the means to reduce the increasingly onerous task of reporting, imposed
  7519. by the introduction of ‘records of achievement’ (ROA). (If you do not
  7520. have First Word Plus, or something better, you deserve all the hard work
  7521. you have to do!) Using First Word Plus, it is fairly easy to set up a
  7522. ‘Mail merge’ which will print out the documents required for the ROA.
  7523. 2.8
  7524. The clue to doing this lies in the example mail-merge letter on the
  7525. First Word Plus disk. As with most problems, there are probably many
  7526. (or, at least, a few) different solutions − this is one. I hope it will
  7527. help reduce your load as much as it has mine!
  7528. 2.8
  7529. In all that follows, the underlined words below are supposed to be in
  7530. light type which I am unable to print in Elite type. The page numbers
  7531. refer to the First Word Plus handbook.
  7532. 2.8
  7533. In outline, you will need to set up four files: a command file, a data
  7534. file, a file containing the com-ment bank and the ‘main’ file (which
  7535. corresponds to the letter in the mail-merge example).
  7536. 2.8
  7537. The command file (called ‘command’): This needs to contain the informa
  7538. tion which indicates the location of the data file (see below), any
  7539. individual input to the ROA document (‘input’ typed in ‘light’ type
  7540. p.165 − 169 ) and a reference to the basic form as an ‘includefile’
  7541. statement. The WP mode can be left switched on when creating this file
  7542. and saving it.
  7543. 2.8
  7544. The data file (‘formdata’) must be created in the dat. directory and
  7545. contains only the data you wish to be inserted into the final document
  7546. as it is printed and is simply a list of names (firstname, secondname),
  7547. sex (He/She), tutor group (or Form, or whatever cockeyed system your
  7548. educational establishment has decided to inflict on you), date and any
  7549. other required information. As pointed out in the handbook, each item of
  7550. data must be separated from the next by a comma. There is also a problem
  7551. of commas in an item of data but this is catered for by enclosing them,
  7552. as explained on p.165. A specimen layout could be as shown :
  7553. Fred,Bloggs,He,4Z,Nov 1988,Swahili
  7554. 2.8
  7555. Note that the data fields are comma separated fields and may include
  7556. spaces (p.165). This file must be created in non-WP mode and the mode
  7557. left switched off when saving; ignore the pop-up reminder which appears
  7558. when you try to save the file.
  7559. 2.8
  7560. The comment bank file (‘ROA’), obviously, contains all the comments
  7561. which you may wish to make about any group of students. Each comment is
  7562. prefixed by a suitable identifier e.g. K1. In order to be able to use
  7563. these comments, each identifier must be set up as a keyword (p.163) by
  7564. preceding it with ‘setval’ in light type e.g.
  7565. 2.8
  7566. setval K1, “name1 is a complete idiot when it comes to practical work.
  7567. sex is a complete liability as sex has 11 thumbs on two left hands.”
  7568. 2.8
  7569. Note the <,> and the <“>. I found that it was easier to type the comment
  7570. with the WP mode switched on and then to switch the WP mode off and move
  7571. all the text onto one line. The WP mode was then switched on again as
  7572. the document does not print out correctly otherwise.
  7573. 2.8
  7574. The setval definition seems to need all the text on one line but as this
  7575. can be 160 characters long, that is not too much of a problem. These
  7576. definitions can also contain key words, in light type, for insertions
  7577. from the data file into the final document. This is useful as it means
  7578. that you can specify he or she along with the name in the data file.
  7579. N.B. Changing the ruler turns off the ‘light’ type causing the defini
  7580. tions and insertions to be ignored in the final print-out.
  7581. 2.8
  7582. The final file (called ‘form’); the document you are going to print,
  7583. contains very little other than keywords spaced out as is appropriate
  7584. for your ROA. The first line must be a read statement which, being a
  7585. keyword is in light type. Following this is a list of fields in ordinary
  7586. type and in the same order as in the data file. The rest of the file is
  7587. mainly spaces preceded by a keyword placed where you want your printing
  7588. to be done. Eg.
  7589. 2.8
  7590. read name1,name2,sex,date,tutor, subject (reads from ‘formdata’)
  7591. 2.8
  7592. name1, name2 tutor subject date
  7593. 2.8
  7594. includefile ROA (this reads in the comment bank)
  7595. 2.8
  7596. name1 K1 (prints “Fred is an idiot .....”)
  7597. 2.8
  7598. sex C3 (prints in the comment on comprehension)
  7599. 2.8
  7600. sex I1 (prints in the comment on intelligence) etc.
  7601. 2.8
  7602. This file will, of course, need the WP mode swit-ched on in order to
  7603. retain all the formatting infor-mation which is necessary for the
  7604. automatic form-atter to work when insertions are made in the text.
  7605. 2.8
  7606. The ROA is printed out by clicking on ‘form’ and ‘formdata’ (from the
  7607. doc. directory) using the mail-merge facility on the First Word Plus
  7608. disc. Full details of this are given in the Handbook.
  7609. 2.8
  7610. Font Fiddling on First Word Plus
  7611. 2.8
  7612. Reg Dalton (& Steve Bass)
  7613. 2.8
  7614. Reg tells us the saga of creating character sets for First Word Plus and
  7615. his NEC P2200. A sample printout is shown opposite, and the programs and
  7616. printer drivers are on the program disc and downloadable from Eureka II.
  7617. 2.8
  7618. In an earlier edition of Archive (1.12 p 7) was printed a short routine
  7619. to convert the extra fonts, supplied on the Master Welcome disc, from
  7620. BBC to Archimedes format. On the face of it, this looked as if it would
  7621. be a useful little routine but there was a problem; only half of the
  7622. character set was defined. i.e. characters 32 to 126. My friend Steve,
  7623. in his wisdom, decided that one of the fonts (7by8) looked very good
  7624. with First Word Plus and decided to redefine the rest of the characters
  7625. to match the ones already done.
  7626. 2.8
  7627. The next step in the story was when I foolishly mentioned that it would
  7628. be quite simple to set up First Word Plus to utilise the IBM graphics
  7629. available in one of the alternative character sets within the printer we
  7630. both had (NEC P2200). We then decided that redesigning the fonts using
  7631. the Master was not the way to do this, mainly because the fonts would
  7632. then have to be converted to Archimedes, so we converted the CHARDES
  7633. program, which was mainly in BASIC, to a form that would save fonts in
  7634. the correct format and also run with the Archimedes mouse.
  7635. 2.8
  7636. The problem of modifying the program to work on the Archimedes was not
  7637. too difficult by even an amateur programmer’s standards but to make it
  7638. save the font in its correct form for the Archimedes proved more
  7639. problematical. A number of abortive attempts were made to rewrite the
  7640. save font routine but each time nothing was achieved except making the
  7641. computer’s character set look like hieroglyphics. Eventually, it all
  7642. fell into place and we had a working program.
  7643. 2.8
  7644. We then decided that a program for transposing characters within the
  7645. character set itself might not be a bad idea. This was written fairly
  7646. speedily, but then the next task was to create the printer driver for
  7647. First Word Plus. This marathon is usually achieved by modifying an
  7648. existing wordprocessor/printer driver file, which involves changing the
  7649. relevant values for the various functions listed within the file, e.g.
  7650. superscript, subscript, nlq etc. After this fairly simple part comes the
  7651. task of entering all the codes to achieve the extra characters which
  7652. cannot enter from the keyboard. For characters 32 to 127 this was
  7653. obviously quite simple as all that was needed in this instance was each
  7654. character’s number, but it was soon noticed by both of us that the
  7655. characters between &80 and &9F (decimal 128 to 159) were not defined by
  7656. the existing list. After an abortive attempt to define these characters,
  7657. and failing to get them to install, it was decided that we would have to
  7658. discard 32 (yes a whole 32) of the characters so lovingly designed by
  7659. Steve.
  7660. 2.8
  7661. Notes on the font fiddling programs
  7662. 2.8
  7663. (These refer to programs on the monthly disc.)
  7664. 2.8
  7665. 1   !BOOT is the program for interchanging the position of the
  7666. characters.
  7667. 2.8
  7668. 2   After running the above program, the Acorn Character Designer
  7669. Program (modified for use on the Archimedes), Chardes_C, can be entered
  7670. and 1 above repeated as many times as necessary.
  7671. 2.8
  7672. 3   The modified Printer driver for 1WP is in the CFG directory.
  7673. 2.8
  7674. 4   The modified Printer driver hex file for 1wp is in the HEX
  7675. directory.
  7676. 2.8
  7677. 5   Before booting the disc, the font style to be modified must first be
  7678. loaded e.g. by using *NEC_Afont.
  7679. 2.8
  7680.  
  7681. •   External drive hang-ups −  If you have an external 5.25“ drive
  7682. configured and it is not kept on-line (i.e. it is switched off) then the
  7683. machine hangs up if the ADFS is searching for a named disc which is not
  7684. in drive 0 at the time that the command was issued, e.g. when attempting
  7685. to copy file(s) from one 3.5” disc to another. The solution appears to
  7686. be either always have the external drive switched on, or to configure it
  7687. out of the system during periods when it is switched off.
  7688. •   GWBASIC to BBC BASIC − I wanted to convert a GWBASIC program to a
  7689. BBC BASIC one, but both BASIC’s store programs with the keywords
  7690. tokenised. Therefore I needed the equivalent of the *SPOOL command. The
  7691. answer seems to be that from GWBASIC either:
  7692. SAVE “filename”,A
  7693. or
  7694. LIST ,“filename”
  7695. Both give a version of the listing which, when ported across via
  7696. putfile, can be *EXEC-uted.
  7697. •   Mouse problems − I had a problem with my mouse. Sometimes when I
  7698. moved the mouse down, the pointer moved UP. At other times it worked
  7699. perfectly. I tried everything − including measuring the electronics
  7700. inside the mouse, and inside the keyboard, adjusting the sensitivity and
  7701. cleaning the inside and outside of the mouse. Finally I discovered that
  7702. the problem was a broken wire in the cable out from the mouse. Odd
  7703. Bakken
  7704. 2.9
  7705. •   NEC multisync modifications − With a NEC multisync II monitor, I
  7706. found that the horizontal width of the picture was not optimal. There
  7707. was a black border on each side of the picture and, in modes 18-20, the
  7708. picture was even smaller, making the letters a little hard to read. I
  7709. called the local dealer and got a copy of their service manual. You can
  7710. adjust the horizontal size with coil L505. I got some improvement by
  7711. removing the core of the coil but not enough. So I shorted the coil
  7712. completely (after consulting the dealer, who said it would not harm the
  7713. monitor). By doing this I got a 10% wider picture. (I still have the
  7714. distortion of the top lines in mode 18-20.) Odd Bakken
  7715. 2.9
  7716. •   OS_PrettyPrint − There has been very little in the literature about
  7717. the use of OS_PrettyPrint to avoid word wraparound in, for example, the
  7718. preparation of instruction notes at the beginning of a program. (You can
  7719. use SYS &44 instead of writing the full command). All that is needed is
  7720. a simple BASIC program such as :
  7721. 2.9
  7722.    10 SYS &44,“<Block of words>”
  7723. 2.9
  7724.    20 PRINT;“ ”;:REM Insert space
  7725. 2.9
  7726. or    20 PRINT:REM New Line
  7727. 2.9
  7728.    30 SYS &44,“<Continuation of
  7729. 2.9
  7730.  text>“
  7731. 2.9
  7732.    40 PRINT;“ ”;       etc.
  7733. 2.9
  7734. The text in line 30 continues from the point where it ended in line 10.
  7735. Unfortunately the OS command strips the leading and trailing spaces from
  7736. the block of text. The PRINT statements are therefore necess-ary to
  7737. separate the end of the text in line 10 from the beginning of the text
  7738. in line 30 or to force a new line. The word block length has the
  7739. standard BASIC line limitation which amounts to roughly three lines of
  7740. text in the 80 chars/line modes. The command works in any mode and by
  7741. judicious placing of PRINT and COLOUR statements you can have sections
  7742. of the text or even single words in colour.
  7743. 2.9
  7744. •   Pipedream and the LC10 − To print in colour on a Star LC 10 colour
  7745. printer, if Pipedream is config-ured with a printer driver which
  7746. includes the follow-ing codes, the various printing styles available on
  7747. the Star LC 10 C can be selected when the printer is switched on, and
  7748. printed in colour.
  7749. 2.9
  7750.       On   Off   Description
  7751. 2.9
  7752.    H1   27 114 1   27 114 0   Red Text
  7753. 2.9
  7754.    H2   27 114 2    27 114 0   Blue Text
  7755. 2.9
  7756.    H3   27 114 3   27 114 0    Violet Text
  7757. 2.9
  7758.    H4   27 114 4   27 114 0   Yellow Text
  7759. 2.9
  7760.    H5   27 114 5    27 114 0   Orange Text
  7761. 2.9
  7762.    H6   27 114 6   27 114 0   Green Text
  7763. 2.9
  7764. •   Pipedream line spacing − (Colton Software’s reply to a request for
  7765. 1.5 line spacing on Pipedream) Pipedream knows only integral line
  7766. spacing; single, double etc, but the line spacing on the printer can be
  7767. set independently by sending out some codes with the printer-on string
  7768. (PON). For example, PON       ESC “2” would give 1.5 line spacing on
  7769. Epson compatible printers.
  7770. 2.9
  7771. •   Multi Sync Owners! Out here in New Zealand, the average multisync
  7772. monitor costs about £60 more than the standard Acorn monitor. As a
  7773. result around 60-80% of Archimedes owners have multisync’s. I haven’t a
  7774. clue as to why they are so much dearer in the U.K. but suggest that
  7775. someone somewhere is making a great deal of money! Most of the programs
  7776. available don’t provide a multisync option which is a real shame as that
  7777. extra 256 pixels make all the difference. I’ve tried to convert some
  7778. programs but haven’t had much luck except for Render Bender.
  7779. 2.9
  7780. To convert Render Bender proceed as follows:
  7781. 2.9
  7782. Make a new backup of your Render Bender System Disc. Label it “Render
  7783. Bender Modes 15 & 21” or somesuch. Enter BASIC and load the main program
  7784. “!RENDER.RENDER”. Change or add the following lines.
  7785. 2.9
  7786.    60 DIM loadadd &F100,sb1%32*1023
  7787. 2.9
  7788. :org=loadadd+&A100
  7789. 2.9
  7790.  2550 XRES=640:YRES=256:SC%=100:
  7791. 2.9
  7792.  DES=1000:IND=1.5:SKYCOL=13
  7793. 2.9
  7794. :SKYDEP=600:AVE=1:SHAD=1:SHGR=0
  7795. 2.9
  7796.  2950 IF YRES=256 AND SCRADD%<=
  7797. 2.9
  7798. &1FB0000 YRES=512:PROCbox
  7799. 2.9
  7800. (17,16,14,2,“HIGH*RESOLUTION”
  7801. 2.9
  7802. ,14,0):ENDPROC
  7803. 2.9
  7804.  2960 YRES=256:PROCbox(17,16,14,2,
  7805. 2.9
  7806. “LOW*RESOLUTION”,14,0):ENDPROC
  7807. 2.9
  7808.  3981 IF RES=320 THEN XRES=640:
  7809. 2.9
  7810. YRES=256
  7811. 2.9
  7812. 13590 vars!xlim=XL:vars!ylim=YL
  7813. 2.9
  7814. :vars!reso=XRES
  7815. 2.9
  7816. 14010 A$=LEFT$(name$,8):A$=A$+
  7817. 2.9
  7818. STR$FILFR%:IF YRES=256 ENS%
  7819. 2.9
  7820. =&28000 ELSE ENS%=&50000
  7821. 2.9
  7822. 14090 XL=XRES/SIZE%:YL=YRES/SIZE%
  7823. 2.9
  7824. :PROCcoeffin
  7825. 2.9
  7826. 14110 IF YRES=256 MODE15 ELSE MODE21
  7827. 2.9
  7828. 14190 IF YRES=256 MODE15 ELSE MODE21
  7829. 2.9
  7830. 14280 XL=XRES/SIZE%:YL=YRES/SIZE%
  7831. 2.9
  7832. :PROCcoeffin:SCROFF%=1
  7833. 2.9
  7834. :PROCisflooron
  7835. 2.9
  7836. 14290 IF YRES=256 MODE15 ELSE MODE21
  7837. 2.9
  7838. 15150 IF YRES=256 PROCbox(17,16,14,2,
  7839. 2.9
  7840. “LOW*RESOLUTION”,14,1)ELSE PROCbox
  7841. 2.9
  7842. (17,16,14,2,“HIGH*RESOLUTION”,14,1)
  7843. 2.9
  7844. 11320 GCOL63 TINT 255:VDU5:IF
  7845. 2.9
  7846.  YRES=256 PRINTTAB(0,31);“Click
  7847. 2.9
  7848.  Mouse“ ELSE PRINTTAB(0,62);
  7849. 2.9
  7850. “Click Mouse”
  7851. 2.9
  7852. 14380 GCOL63 TINT255:IFYRES=256
  7853. 2.9
  7854.  PRINTTAB(0,31);“Time taken ”;
  7855. 2.9
  7856. :PROCtime(TI) :GCOL 25:PRINT;
  7857. 2.9
  7858. “ Click mouse” ELSE PRINTTAB(0,62);“Time taken ”; :PROCtime(TI):GCOL 25:
  7859. 2.9
  7860. PRINT;“ Click mouse”
  7861. 2.9
  7862. SAVE “:0.$.!RE*.RENDER”
  7863. 2.9
  7864. Then to modify the Picture Compressor
  7865. 2.9
  7866. $.!RE*.UTIL*.PICCOMP
  7867. 2.9
  7868. *BASIC
  7869. 2.9
  7870. *LOAD :0.$.!RE*.UTIL*.PICCOMP 8F00
  7871. 2.9
  7872. *ACCESS :0.$.!RE*.UTIL*.PICCOMP WR
  7873. 2.9
  7874. !&90C0=&E3520015
  7875. 2.9
  7876. !&90C4=&03A0B805
  7877. 2.9
  7878. !&92F0=&E3500015
  7879. 2.9
  7880. !&92F4=&03A08805
  7881. 2.9
  7882. *SAVE :0.$.!RE*.UTIL*.PICCOMP 8F00+534
  7883. 2.9
  7884. *SETTYPE :0.$.!RE*.UTIL*.PICCOMP &FFA
  7885. 2.9
  7886. To modify the Animator
  7887. 2.9
  7888. *BASIC
  7889. 2.9
  7890. LOAD“:0.$.!RE*.UTIL*.ANIROUT”
  7891. 2.9
  7892. 140DIM buff &50000,DUM 1:anipo%=DUM
  7893. 2.9
  7894. +&6000:PROCboot:!anipo%=0
  7895. 2.9
  7896. 1371IF !mode=21 length%=&50000
  7897. 2.9
  7898. 2251IF MODE=21 length%=&50000
  7899. 2.9
  7900. SAVE “:0.$.!RE*.UTIL*.ANIROUT”
  7901. 2.9
  7902. Finally to get Render Bender going you need a new startup file
  7903. 2.9
  7904. *BUILD :0.$.Rend21
  7905. 2.9
  7906. *ECHO <22> <21>
  7907. 2.9
  7908. *SET RENDER :0.$.!RENDER
  7909. 2.9
  7910. *set OBEY$DIR adfs::0.$.!RENDER
  7911. 2.9
  7912. *set FROM$DESK 0
  7913. 2.9
  7914. *SET RendHard1 adfs::4.$.GRAPHICS.
  7915. 2.9
  7916. !Render \ or your path here
  7917. 2.9
  7918. *SET HardRoot $
  7919. 2.9
  7920. *RMLOAD <RENDER>.Utilities.FSLOAD
  7921. 2.9
  7922. *RMLOAD <RENDER>.Utilities.PicComp
  7923. 2.9
  7924. *BASIC <RENDER>.START
  7925. 2.9
  7926. <Escape>
  7927. 2.9
  7928. *SETTYPE :0.$.Rend21 &FFE
  7929. 2.9
  7930. Then to run Render Bender using:
  7931. 2.9
  7932. *CO. SCR. 320K
  7933. 2.9
  7934. <ctrl-break>
  7935. 2.9
  7936. *:0.$.Rend21
  7937. 2.9
  7938. All this is supplied on the monthly program disc as a series of exec
  7939. files so to modify Render Bender you just do this (where <comment>=just
  7940. that!)
  7941. 2.9
  7942. <insert Render Bender Disc>
  7943. 2.9
  7944. LOAD“:0.!RENDER.RENDER”
  7945. 2.9
  7946. <insert program disc and *MOUNT or
  7947. 2.9
  7948.  use winnie>
  7949. 2.9
  7950. *EXEC Rendermods.RendMods
  7951. 2.9
  7952. <insert Render disc and *MOUNT>
  7953. 2.9
  7954. SAVE “:0.$.!RENDER.RENDER”
  7955. 2.9
  7956. LOAD “:0.!RENDER.UTIL*.ANIROUT”
  7957. 2.9
  7958. <insert my disc and *MOUNT or use
  7959. 2.9
  7960.  winnie>
  7961. 2.9
  7962. *EXEC Rendermods.AniMods
  7963. 2.9
  7964. <insert Render disc and *MOUNT>
  7965. 2.9
  7966. SAVE “:0.!RENDER.UTIL*.ANIROUT”
  7967. 2.9
  7968. COPY Rend21 across to $ <On Render
  7969. 2.9
  7970.  Disc!>
  7971. 2.9
  7972. *WIPE $.!RE*.U*.PICCOMP F~C <get rid
  7973. 2.9
  7974.  of old PicComp>
  7975. 2.9
  7976. COPY PicComp across to $.!RENDER.
  7977. 2.9
  7978. UTILITIES <On Render Disc!>
  7979. 2.9
  7980. then you should be ready to go!
  7981. 2.9
  7982. •   Eigenvalues of a matrix − The following program is meant for readers
  7983. who are interested in the determination of eigenvalues of a matrix. It
  7984. is based on the idea that the eigenvalues of a matrix do not change by a
  7985. similarity transformation. Decomposing a square, symmetric matrix S in
  7986. its lower and upper triangular forms (L and U respectively satisfying
  7987. LU=S) gives a new matrix UL having the same eigenvalues as S, since UL =
  7988. (U^−1)ULU. It can be proved that by repeating this process, a matrix is
  7989. obtained containing zero elements, except for the eigenvalues residing
  7990. on the main diagonal.
  7991. 2.9
  7992. Consider an arbitrary matrix M, having a number of rows equal to or
  7993. greater than its number of columns. Then M’M (M‘ standing for transposed
  7994. of M) is a square, symmetric matrix having the same eigen-values as M.
  7995. Some of these values may equal zero indicating that the dimensionality
  7996. of M is smaller than its number of columns. Or in other words, the
  7997. matrix spans an x-dimensional space, where x equals the number of non-
  7998. zero eigenvalues of M.
  7999. 2.9
  8000.   10 REM >Eig_values
  8001. 2.9
  8002.   20 :
  8003. 2.9
  8004.   30 ********************************
  8005. 2.9
  8006.   40 REM Eigenvalues of an arbitrary
  8007. 2.9
  8008.   50 REM matrix.  E.D. Engelhardt,
  8009. 2.9
  8010.  March 1989
  8011. 2.9
  8012.   60 ********************************
  8013. 2.9
  8014.   70 :
  8015. 2.9
  8016.   80 PROCinit
  8017. 2.9
  8018.   90 :
  8019. 2.9
  8020.  100 PROCmenu
  8021. 2.9
  8022.  110 :
  8023. 2.9
  8024.  120 PROCinput
  8025. 2.9
  8026.  130 :
  8027. 2.9
  8028.  140 start%=TIME
  8029. 2.9
  8030.  150 PROCmain
  8031. 2.9
  8032.  160 end%=TIME
  8033. 2.9
  8034.  170 :
  8035. 2.9
  8036.  180 PROCprint
  8037. 2.9
  8038.  190 END
  8039. 2.9
  8040.  200 ————————————————
  8041. 2.9
  8042.  210 DEFPROCinit
  8043. 2.9
  8044.  220 @%=&0A0A:CLS
  8045. 2.9
  8046.  230 ENDPROC
  8047. 2.9
  8048.  240 ————————————————
  8049. 2.9
  8050.  250 DEFPROCmenu
  8051. 2.9
  8052.  260 OFF
  8053. 2.9
  8054.  270 PRINTTAB(31,12)“EIGENVALUES”‘
  8055. 2.9
  8056.  280 PRINTTAB(27,14)“[1] Random matrix”
  8057. 2.9
  8058.  290 PRINTTAB(27,15)“[2] Fixed demo
  8059. 2.9
  8060.  5x4 matrix“
  8061. 2.9
  8062.  300 PRINTTAB(27,16)“[3] Fixed demo
  8063. 2.9
  8064.  4x4 matrix“
  8065. 2.9
  8066.  310 ENDPROC
  8067. 2.9
  8068.  320 ————————————————
  8069. 2.9
  8070.  330 DEFPROCinput
  8071. 2.9
  8072.  340 while=TRUE
  8073. 2.9
  8074.  350 WHILE while
  8075. 2.9
  8076.  360   CASE GET$ OF
  8077. 2.9
  8078.  370   WHEN “1”:while=FALSE:ON
  8079. 2.9
  8080.  380     REM Generate random matrix M,
  8081. 2.9
  8082.  col% columns and row% rows
  8083. 2.9
  8084.  390     REPEAT:
  8085. 2.9
  8086. INPUT‘“ Rows            : ”
  8087. 2.9
  8088. row%:UNTIL row%>0
  8089. 2.9
  8090.  400     REPEAT:INPUT‘“ Columns
  8091. 2.9
  8092. <= rows : “col%:UNTIL col%
  8093. 2.9
  8094. <=row% AND col%>0
  8095. 2.9
  8096.  410     CLS:
  8097. 2.9
  8098. PRINT‘“ Rows       : ”STR$
  8099. 2.9
  8100. row%‘“ Columns    : ”STR$col%
  8101. 2.9
  8102.  420     row%-=1:col%-=1
  8103. 2.9
  8104.  430     DIM M(row%,col%)
  8105. 2.9
  8106.  440     FORr%=0TOrow%:FORc%=0TOcol%
  8107. 2.9
  8108.  450       M(r%,c%)=RND(1)*SGN(0.5-
  8109. 2.9
  8110. RND(1))
  8111. 2.9
  8112.  460     NEXT:NEXT
  8113. 2.9
  8114.  470     :
  8115. 2.9
  8116.  480   WHEN “2”:while=FALSE:ON
  8117. 2.9
  8118.  490     REM *** Fixed data for demo
  8119. 2.9
  8120.  5x4 matrix having one zero
  8121. 2.9
  8122.  eigenvalue
  8123. 2.9
  8124.  500     CLS:PRINT‘“ Rows       : 5”
  8125. 2.9
  8126. ‘“ Columns    : 4”
  8127. 2.9
  8128.  510     row%=4:col%=3:DIM M(4,3)
  8129. 2.9
  8130.  520     M(0,0)=4:M(0,1)=3:M(0,2)=2:
  8131. 2.9
  8132. M(0,3)=1
  8133. 2.9
  8134.  530     M(1,0)=2:M(1,1)=4:M(1,2)=1:
  8135. 2.9
  8136. M(1,3)=3
  8137. 2.9
  8138.  540     M(2,0)=6:M(2,1)=7:M(2,2)=3:
  8139. 2.9
  8140. M(2,3)=4
  8141. 2.9
  8142.  550     M(3,0)=8:M(3,1)=11:M(3,2)=4:
  8143. 2.9
  8144. M(3,3)=7
  8145. 2.9
  8146.  560     M(4,0)=8:M(4,1)=6:M(4,2)=4:
  8147. 2.9
  8148. M(4,3)=7
  8149. 2.9
  8150.  570     :
  8151. 2.9
  8152.  580   WHEN “3”:while=FALSE:ON
  8153. 2.9
  8154.  590     REM Fixed data for demo 4x4
  8155. 2.9
  8156. matrix having four eigenvalues
  8157. 2.9
  8158.  600     CLS:PRINT‘“ Rows       : 4”
  8159. 2.9
  8160. ‘“ Columns    : 4”
  8161. 2.9
  8162.  610     row%=3:col%=3:DIM M(3,3)
  8163. 2.9
  8164.  620     M(0,0)=1.00:M(0,1)=0.42:
  8165. 2.9
  8166. M(0,2)=0.54:M(0,3)=0.66
  8167. 2.9
  8168.  630     M(1,0)=0.42:M(1,1)=1.00:
  8169. 2.9
  8170. M(1,2)=0.32:M(1,3)=0.44
  8171. 2.9
  8172.  640     M(2,0)=0.54:M(2,1)=0.32:
  8173. 2.9
  8174. M(2,2)=1.00:M(2,3)=0.22
  8175. 2.9
  8176.  650     M(3,0)=0.66:M(3,1)=0.44:
  8177. 2.9
  8178. M(3,2)=0.22:M(3,3)=1.00
  8179. 2.9
  8180.  660   ENDCASE
  8181. 2.9
  8182.  670 ENDWHILE
  8183. 2.9
  8184.  680 ENDPROC
  8185. 2.9
  8186.  690 ————————————————-
  8187. 2.9
  8188.  700 DEFPROCmain
  8189. 2.9
  8190.  710 DIM Mt(col%,row%),MtM(col%,col%)
  8191. 2.9
  8192. ,E(col%)
  8193. 2.9
  8194.  720 PROCtranspose(M(),Mt())
  8195. 2.9
  8196.  730 PROCsquare_sym(M(),Mt(),MtM())
  8197. 2.9
  8198.  740 PROCeigenvalues(MtM(),E())
  8199. 2.9
  8200.  750 ENDPROC
  8201. 2.9
  8202.  760 ————————————————-
  8203. 2.9
  8204.  770 DEFPROCtranspose(R(),Rt())
  8205. 2.9
  8206.  780 LOCAL v%,h%
  8207. 2.9
  8208.  790 v%=DIM(R(),1):h%=DIM(R(),2)
  8209. 2.9
  8210.  800 FOR r%=0 TO v%:FOR c%=0 TO h%:
  8211. 2.9
  8212. Rt(c%,r%)=R(r%,c%):NEXT:NEXT
  8213. 2.9
  8214.  810 ENDPROC
  8215. 2.9
  8216.  820 ————————————————-
  8217. 2.9
  8218.  830 DEFPROCsquare_sym(R(),Rt(),RtR())
  8219. 2.9
  8220.  840 RtR()=Rt().R()
  8221. 2.9
  8222.  850 ENDPROC
  8223. 2.9
  8224.  860 ————————————————-
  8225. 2.9
  8226.  870 DEFPROCeigenvalues(RtR(),EV())
  8227. 2.9
  8228.  880 REM Eigenvalues are determined
  8229. 2.9
  8230.  from R-transposed x R, using the property that eigenvalues do not
  8231. change by a similarity
  8232. 2.9
  8233.  890 REM ***  transformation. Rt.R is
  8234. 2.9
  8235.  decomposed in a lower and upper
  8236. 2.9
  8237.  tri-angular matrix, Rt.R=LU. Then
  8238. 2.9
  8239.  UL has the same eigenvalues as LU.
  8240. 2.9
  8241.  900 REM Repeating this process
  8242. 2.9
  8243.  iterates all non-diagonal elements              to 0, and the diagonal
  8244. elements
  8245. 2.9
  8246.  to the eigenvalues.
  8247. 2.9
  8248.  910 :
  8249. 2.9
  8250.  920 REM E.D. Engelhardt, March 1989
  8251. 2.9
  8252.  930 :
  8253. 2.9
  8254.  940 LOCAL L(),U(),UL(),h%,c%,r%,t%,
  8255. 2.9
  8256. repeat,max,iterations%
  8257. 2.9
  8258.  950 h%=DIM(EV(),1)
  8259. 2.9
  8260.  960 DIM L(h%,h%),U(h%,h%),UL(h%,h%)
  8261. 2.9
  8262.  970 :
  8263. 2.9
  8264.  980 PRINTTAB(1,30)“Iteration       : ”
  8265. 2.9
  8266.  :REM This info may be left out
  8267. 2.9
  8268.  990 :
  8269. 2.9
  8270. 1000 repeat=TRUE
  8271. 2.9
  8272. 1010 REPEAT
  8273. 2.9
  8274. 1020   iterations%+=1:PRINTTAB(13,30)
  8275. 2.9
  8276. iterations%  :REM may be left out
  8277. 2.9
  8278. 1030   REM Calculate lower triangle
  8279. 2.9
  8280.  L of RtR
  8281. 2.9
  8282. 1040   FOR c%=0 TO h%:FOR r%=c% TO h%
  8283. 2.9
  8284. 1050     L(r%,c%)=RtR(r%,c%):t%=c%-1
  8285. 2.9
  8286. 1060     IF t%>=0 FORt%=t%TO0STEP-1:
  8287. 2.9
  8288. L(r%,c%)=L(r%,c%)-L(r%,t%)
  8289. 2.9
  8290. *L(c%,t%):NEXT
  8291. 2.9
  8292. 1070     IF r%>c% THEN L(r%,c%)=
  8293. 2.9
  8294. L(r%,c%)/L(c%,c%)
  8295. 2.9
  8296. 1080     IF r%=c% IF L(r%,c%)<0 THEN:
  8297. 2.9
  8298. FOR t%=0 TO h%:L(t%,c%)=0:NEXT
  8299. 2.9
  8300. 1090     IF r%=c% L(r%,c%)=SQR L(r%,c%)
  8301. 2.9
  8302. 1100     IF r%=c% AND L(r%,c%)=0 r%=h%
  8303. 2.9
  8304. 1110   NEXT:NEXT
  8305. 2.9
  8306. 1120   :
  8307. 2.9
  8308. 1130   PROCtranspose(L(),U())
  8309. 2.9
  8310. 1140   :
  8311. 2.9
  8312. 1150   REM Matrix similar to RtR (ie
  8313. 2.9
  8314.  having same eigenvalues) is UL
  8315. 2.9
  8316. 1160   UL()=U().L()
  8317. 2.9
  8318. 1170   :
  8319. 2.9
  8320. 1180   REM Determine if diagonals of
  8321. 2.9
  8322.  RtR and UL are equivalent
  8323. 2.9
  8324. 1190   t%=0
  8325. 2.9
  8326. 1200   REPEAT
  8327. 2.9
  8328. 1210     IF UL(t%,t%)<>RtR(t%,t%)
  8329. 2.9
  8330. :repeat=FALSE
  8331. 2.9
  8332. 1220     t%+=1:IF t%>h% repeat=FALSE
  8333. 2.9
  8334. 1230   UNTIL repeat=FALSE
  8335. 2.9
  8336. 1240   IF t%<=h% repeat=TRUE:RtR()=
  8337. 2.9
  8338. UL()
  8339. 2.9
  8340. 1250 UNTIL repeat=FALSE
  8341. 2.9
  8342. 1260 :
  8343. 2.9
  8344. 1270 REM Put eigenvalues smaller then
  8345. 2.9
  8346.  non-diagonal elements to zero
  8347. 2.9
  8348. 1280 FOR t%=0 TO h%:UL(t%,t%)=0:NEXT
  8349. 2.9
  8350. 1290 FOR r%=1 TO h%-1:FOR c%=1 TO r%
  8351. 2.9
  8352. 1300   IF ABS UL(r%,c%)>max max=ABS
  8353. 2.9
  8354.  UL(r%,c%)
  8355. 2.9
  8356. 1310 NEXT:NEXT
  8357. 2.9
  8358. 1320 FOR c%=0 TO h%
  8359. 2.9
  8360. 1330   EV(c%)=RtR(c%,c%):IF EV(c%)<=
  8361. 2.9
  8362. max EV(c%)=0
  8363. 2.9
  8364. 1340 NEXT
  8365. 2.9
  8366. 1360 ENDPROC
  8367. 2.9
  8368. 1370 ————————————————
  8369. 2.9
  8370. 1380 DEFPROCprint
  8371. 2.9
  8372. 1390 VDU 14
  8373. 2.9
  8374. 1400 CLS:PRINT‘“ Rows       : ”STR$
  8375. 2.9
  8376. row%‘“ Columns    : ”STR$col%
  8377. 2.9
  8378. 1410 PRINT‘“ Time(centisecs) : ”;STR$
  8379. 2.9
  8380. (end%-start%)‘’
  8381. 2.9
  8382. 1420 PRINT“ ******** Eigenvalues : ”‘
  8383. 2.9
  8384. 1430 FOR c%=0 TO col%
  8385. 2.9
  8386. 1440   PRINT E(c%)
  8387. 2.9
  8388. 1450 NEXT:PRINT
  8389. 2.9
  8390. 1460 VDU 15
  8391. 2.9
  8392. 1470 ENDPROC
  8393.  
  8394. •   Partitioning hard drives − It is possible to partition hard drives
  8395. with less than 10 Mbyte. The answer is in the REM statements in the
  8396. Harddisc program on the PC disc. Change the A2080 in line 610 to any
  8397. multiple of &8800 (in hex). Details are given in the REMs.
  8398. •   Hearsay − We mentioned changing modem baud rates in H & T in May.
  8399. Philip Green sends us a way of doing this automatically suggested by
  8400. Alfons Tjin. Use a dial prefix in the modem driver edit screen of just
  8401. “AT” and then put B3D or B0D, as necessary, in front of the phone number
  8402. in the telephone directory.
  8403. •   Case sensitive system variables − Some readers have had problems
  8404. using the *SETMACRO Alias$ command. This is because system variables are
  8405. case sensitive i.e. you need to type: Alias$ not ALIAS$
  8406. •   Overload passwords:  A B BROS, CABBAGED, SLIPPERS, PREVIOUS,
  8407. PILLAGED, BOVERBOD, LAVATORY, CASSETTE, WHALEÊFM, EXTRACTS, STOPKETS
  8408. The following hints were sent in by Lorcan Mongey
  8409. •   ‘T’ Option in LDR and STR − Assembly language programmers may have
  8410. noticed that the Programmer’s Reference Manual mentions a ‘T’ option in
  8411. the description of the LDR and STR com-mands (page 608), but neglects to
  8412. say what it does. It is, in fact, used for setting the write-back option
  8413. and has exactly the same effect as ‘!’. Note that the *MEMORYI disassem
  8414. bler always disassembles pre-indexed write-back with ‘!’ and post-
  8415. indexed write-back with ‘T’, although you may use either form when
  8416. assembling. Bear in mind that post-indexed write-back always takes
  8417. place, regardless of the state of the write-back flag.
  8418. 2.10
  8419. •   Bit patterns for LDR and STR − There is an omission in Appendix C of
  8420. the “ARM Assembly Language programming” book published by Com-puter
  8421. Concepts. Appendix C gives the bit patterns of the ARM instruction set,
  8422. but does not describe the ‘L’ bit of the ‘Single Data transfer’
  8423. instruction. This is the Load/Store bit: 0=store (STR), 1=load (LDR).
  8424. 2.10
  8425. This description also applies to the ‘Block data transfer’ instructions
  8426. (STM and LDM).
  8427. 2.10
  8428. •   BASIC restrictions − In BASIC II on the BBC B (and IV on the Master)
  8429. there were a number of restrictions which no longer apply to BASIC V on
  8430. the Archimedes, but have not been specifically mentioned in the
  8431. Archimedes User Guide. They are worth noting because they have probably
  8432. become ingrained in BBC B users who may not have realised that they have
  8433. been lifted.
  8434. 2.10
  8435. 1) You can now change MODE inside a procedure or function. This is
  8436. because the screen RAM is now completely separate from the program area.
  8437. 2.10
  8438. 2) The nesting limits of FOR, REPEAT and GOSUB (10, 20 and 26 respec
  8439. tively) no longer apply. Instead of a fixed limit, you can now nest
  8440. loops until you run out of RAM. I have successfully nested loops 15,000
  8441. deep and run a recursive procedure 30,000 levels deep! Strangely,
  8442. nesting GOSUBs too deeply is not trapped and will corrupt your program,
  8443. but this situation is unlikely to happen in practice.
  8444. 2.10
  8445. •   BASIC errors − I have found four BASIC errors not listed in the User
  8446. Guide (Issue 2). They are:
  8447. 2.10
  8448. 11 No room for this dimension − An attempt was made to dimension an
  8449. array for which there was insufficient space.
  8450. 2.10
  8451. 25 Bad MODE − An attempt was made to select a screen mode for which
  8452. there is insufficient memory. More memory can be allocated by *CONFIGURE
  8453. SCREENSIZE.
  8454. 2.10
  8455. 37 No room for function/procedure call − An attempt was made to ‘nest’
  8456. too many function and/or procedure calls.
  8457. 2.10
  8458. 44 Too many nested structures − An attempt was made to ‘nest’ too many
  8459. FOR...NEXT, REPEAT...UNTIL and/or WHILE... ENDWHILE loops.
  8460. 2.10
  8461. Note that 11 and 44 are covered in the Archimedes 400 series BBC BASIC
  8462. Guide.
  8463. 2.10
  8464. •   Using FORTRAN 77 − The article on using FORTRAN 77 in Archive 1.7
  8465. included a sample subroutine showing how to access graphics from
  8466. FORTRAN. There are a number of problems with this subroutine. It can’t
  8467. cope with negative graphics coordinates (needed after an origin shift),
  8468. it sends a line feed to the screen when it is used, which can cause your
  8469. graphics to scroll upwards, and it uses an output channel which should
  8470. be kept free for file access. The following solves all the problems:
  8471. 2.10
  8472. SUBROUTINE PLOT(K,X,Y)
  8473. 2.10
  8474. INTEGER X,Y  I1=IAND(X,?IFF)
  8475. 2.10
  8476. I2=ISHFT(IAND(X,?IFF00),-8)
  8477. 2.10
  8478. J1=IAND(Y,?IFF)
  8479. 2.10
  8480. J2=ISHFT(IAND(Y,?IFF00),-8)
  8481. 2.10
  8482. PRINT 100,CHAR(25),CHAR(K),CHAR(I1),
  8483. 2.10
  8484. CHAR(I2),CHAR(J1),CHAR(J2)
  8485. 2.10
  8486. RETURN
  8487. 2.10
  8488. 100 FORMAT (6A1$)
  8489. 2.10
  8490. END
  8491. 2.10
  8492. This method masks out the unwanted bits and shifts the data into the
  8493. l.s.b., thus preserving the sign. It uses PRINT instead of WRITE,
  8494. avoiding the need for a channel number. The $ at the end of the FORMAT
  8495. statement suppresses the line feed. (No criticism of the original
  8496. authors is intended; my first attempt looked very similar!)
  8497. 2.10
  8498. Included on this month’s program disc is Graph_ FOR, the FORTRAN source
  8499. of a set of graphics subroutines which provide a full set of VDU calls.
  8500. Some, like BELL for instance, are trivial, but others are more
  8501. complicated.
  8502. 2.10
  8503. •   Printer conventions − Many people seem to have difficulty with
  8504. setting up the correct linefeed or non-linefeed for their printers for
  8505. different app-lications, so I.J. King has tried to explain it for usÉ
  8506. 2.10
  8507. How the Archimedes deals with varying printer standards − Since there
  8508. are two standards for printers, the Archimedes has a mechanism to allow
  8509. it to cope with both. The standards in question affect the way the paper
  8510. is fed through the mechanism and there are two possible cases:
  8511. 2.10
  8512.  A. Auto Linefeed: every time the printer receives a carriage return
  8513. character (code 13), it generates a line feed (code 10) to move the
  8514. paper up a line.
  8515. 2.10
  8516. B. Non-Auto Linefeed: the printer does not gener-ate its own linefeed
  8517. characters but relies on the com-puter to send a linefeed after every
  8518. carriage return.
  8519. 2.10
  8520. Most modern printers will actually have a switch to select either of
  8521. these modes, allowing them to be compatible with most computers, but
  8522. this is likely to be difficult to reach. The Archimedes will (in the
  8523. case of virtually all software) send a line feed after every carriage
  8524. return. To allow compatibility with printers in mode (A) above, it is
  8525. possible to tell the machine to ignore a particular code when sent to
  8526. the printer. By setting this to 10 (the code for line feed), no line
  8527. feeds will be sent to the printer and you are compatible with type (A)
  8528. printers.
  8529. 2.10
  8530. This code is set up using the *IGNORE command, for example:
  8531. 2.10
  8532. *IGNORE 10
  8533. 2.10
  8534. To disable the trap altogether, simply enter *IGNORE on its own. Either
  8535. of these may be preceded by CONFIGURE to make the effect permanent, e.g.
  8536. 2.10
  8537. *CONFIGURE IGNORE 10
  8538. 2.10
  8539. The Archimedes is set up with a factory default ignore code of 10,
  8540. making the system compatible with type (A) printers when it arrives.
  8541. 2.10
  8542. Problems arising when the protocol is ignored − The above should make
  8543. everything seem fairly simple and indeed it ought to be. However, some
  8544. software houses, notably GST and Grafox (i.e. First Word Plus and
  8545. Logistix) have chosen to ignore the sensible protocols described above
  8546. and override the *IGNORE status in such a way that they are only
  8547. compatible with type (B) printers, regardless of the setting of *IGNORE.
  8548. 2.10
  8549. This means that the hapless user will have been forced to configure his
  8550. printer to be type (B) but will not have re-configured his Archimedes
  8551. since the software will override the settings and work anyway. They then
  8552. go out and purchase a correctly written package, such as System
  8553. DeltaPlus etc, and the result is a type (B) printer (generating no line
  8554. feeds) on a machine configured for a type (A) printer (and so sending no
  8555. line feeds) which results in no line feeds at all and the text all comes
  8556. out on the same line.
  8557. 2.10
  8558. A subsidiary problem occurs in some cases, when reconfiguring the
  8559. Archimedes to work with type (B) printers, as is necessary if you wish
  8560. to use both First Word Plus/Logistix and other, correctly written,
  8561. software. The correct way to do this is to enter the command *CONFIGURE
  8562. IGNORE with no parameters, completely disabling the printer trap. It is
  8563. not correct to enter *CONFIGURE IGNORE 0 as this prevents code 0 from
  8564. being sent to the printer and may corrupt some graphics/font change
  8565. sequences used by certain software.
  8566. 2.10
  8567. Conclusions − If you are using any package which overrides the Acorn
  8568. protocols for printer compatibility in the way described above and also
  8569. wish to use correctly written software (in my case, I use both Logistix
  8570. and System DeltaPlus), you should take the following steps:
  8571. 2.10
  8572. 1. Set your printer so that Auto Linefeed is OFF (usually a DIP switch).
  8573. 2.10
  8574. 2. Enter *CONFIGURE IGNORE
  8575. 2.10
  8576. 3. Press <ctrl-break> to reconfigure your machine.
  8577. 2.10
  8578. This now only leaves us with one question − why are Acornsoft apparently
  8579. condoning this system of forcing the user to have a printer type
  8580. different from that for which the machine is configured by default?!
  8581. 2.10
  8582. •   PC Emulator Star Commands (Response to query in Archive 2.5 p5) −
  8583. There is no need for a *Configure Floppies command from the PC emul-ator
  8584. when copying from one 3.5“ disc to another. You must understand the
  8585. distinction between log-ical and physical drives: logical drives are
  8586. known to the emulator as A, B, C, etc, and are mapped onto the physical
  8587. drives 0, 1, etc. It is possible to have more than one logical drive
  8588. assigned the same phys-ical drive. This is what happens when you have
  8589. your Archimedes configured for one floppy − the emul-ator maps logical
  8590. drives A and B onto physical drive 0 and, recognising this when you copy
  8591. from A to B, prompts for a disc change. If you have two floppies, the
  8592. emulator maps A and B onto 0 and 1 respect-ively. I use an external
  8593. 5.25” 40/80 track drive on my Archimedes and my config.sys file, listed
  8594. below, illustrates the way around the problem.
  8595. 2.10
  8596. device=driver.sys /d:0 /t:80 /f:2
  8597. 2.10
  8598. device=driver.sys /d:1 /t:80 /f:2
  8599. 2.10
  8600. device=driver.sys /d:1 /t:40 /f:0
  8601. 2.10
  8602. device=driver.sys /d:1 /t:40 /f:0
  8603. 2.10
  8604. files=20
  8605. 2.10
  8606. buffers=10
  8607. 2.10
  8608. The first four lines assign more logical drives (which the emulator
  8609. gives the letters C, D, E and F) to the physical drives 0 and 1. The
  8610. meaning of the parameters is:
  8611. 2.10
  8612. /d: physical drive number
  8613. 2.10
  8614.    (0 for internal, 1 for external)
  8615. 2.10
  8616. /t: number of tracks on disc
  8617. 2.10
  8618.    (80 for 720k and 40 for 360k)
  8619. 2.10
  8620. /f: disc format
  8621. 2.10
  8622.    (2 means 720k, 0 means 360k)
  8623. 2.10
  8624. The first line assigns logical drive C to physical drive 0. You can now
  8625. copy from 3.5“ to 3.5” by using ‘copy a:x.dat c:’ and DOS will prompt
  8626. for a disc change. The second line maps logical drive D to physical
  8627. drive 1, enabling copying between 5.25“ 80-track floppies (copy b:x.dat
  8628. d:). The last two lines assign two 40-track drives (E and F) to physical
  8629. drive 1, allowing copying between 40-track 5.25” discs (copy e:x.dat f:)
  8630. in the same way.
  8631. 2.10
  8632. You should be aware that loading all these device drivers will use up
  8633. some application workspace, leaving less for programs, so only install
  8634. them when you need them!
  8635. 2.10
  8636. •   Three SWIs which are not mentioned in the Programmer’s Reference
  8637. Manual (Issue 1):
  8638. 2.10
  8639. OS_AddToVector &47
  8640. 2.10
  8641. OS_WriteEnv &48
  8642. 2.10
  8643. WaveSynth_Load &40300
  8644. 2.10
  8645. (WaveSynth_Load was mentioned but not ident-ified in Archive 1.8, p9)
  8646. 2.10
  8647. Also, there is one SWI which seems to have been mis-spelled in the
  8648. Arthur 1.20 ROMs, namely:
  8649. 2.10
  8650. Sound_QSDispatch &401C4
  8651. 2.10
  8652. The ‘S’ between Q and Dispatch shouldn’t be there. If you refer to SWIs
  8653. by name rather than number then you must mis-spell this one in the same
  8654. way otherwise it won’t be recognised!
  8655. 2.10
  8656. •   Infinite energy for ThunderMonk − J.R. Donaldson sent in this
  8657. program, which will alter your ThunderMonk disk to give you infinite
  8658. energy.
  8659. 2.10
  8660.  10 REM > Thun_Cheat
  8661. 2.10
  8662.  20 REM Joe Pineapples − Cool Assassin
  8663. 2.10
  8664.  30
  8665. 2.10
  8666.  40 DIM sector% &400
  8667. 2.10
  8668.  50
  8669. 2.10
  8670.  60 MODE 0
  8671. 2.10
  8672.  70 PRINT “Please insert ThunderMonk
  8673. 2.10
  8674.  disc and press a key.“
  8675. 2.10
  8676.  80 G = GET
  8677. 2.10
  8678.  90
  8679. 2.10
  8680. 100 PRINT ‘“Now loading relevant
  8681. 2.10
  8682.  sector“‘
  8683. 2.10
  8684. 110
  8685. 2.10
  8686. 120 SYS “ADFS_DiscOp”,, 1, &C6400,
  8687. 2.10
  8688.  sector%, &400
  8689. 2.10
  8690. 130
  8691. 2.10
  8692. 140 PRINT “Do you want to play
  8693. 2.10
  8694.  (C)heat or Normal ?“
  8695. 2.10
  8696. 150 G = GET
  8697. 2.10
  8698. 160
  8699. 2.10
  8700. 170 IF G=ASC(“C”) OR G=ASC(“c”) THEN
  8701. 2.10
  8702. 180   sector%!&388 = &E59C0044
  8703. 2.10
  8704. 190   sector%!&38C = &E28000FE
  8705. 2.10
  8706. 200   sector%!&390 = &E58C0044
  8707. 2.10
  8708. 210   ELSE
  8709. 2.10
  8710. 220   sector%!&388 = &059C0044
  8711. 2.10
  8712. 230   sector%!&38C = &02400001
  8713. 2.10
  8714. 240   sector%!&390 = &058C0044
  8715. 2.10
  8716. 250 ENDIF
  8717. 2.10
  8718. 260
  8719. 2.10
  8720. 270 PRINT ‘“Now saving relevant
  8721. 2.10
  8722.  sector“‘
  8723. 2.10
  8724. 280
  8725. 2.10
  8726. 290 SYS “ADFS_DiscOp”,, 2, &C6400,
  8727. 2.10
  8728.  sector%, &400
  8729. 2.10
  8730. 300
  8731. 2.10
  8732. 310 PRINT “Change complete. Now use
  8733. 2.10
  8734.  disc as normal.“
  8735. 2.10
  8736. 320 END
  8737. 2.10
  8738. •   Thunder Monk passwords − the Thunder Monk passwords change from disc
  8739. to disc (or do they change from month to month? Ed), but they can be
  8740. found at address &4E400. Just find your level two password in the list
  8741. below and next two words will be used for levels three and four e.g. our
  8742. level two password is STEVES so the passwords for the next levels are
  8743. BIRTHDAY and MIDSUMMER.
  8744. 2.10
  8745. SHIRT JUMPER WELLIES Y-FRONTS LOVERS HEARTS CUPID VALENTINE DANIEL AND
  8746. SIMONS BIRTHDAY JOKES SHOWERS FOOL SPRING POLE EXAMS SUNNY STUDY STEVES
  8747. BIRTHDAY MIDSUMMER WARMER HOLIDAYS MAJORCA SUNHAT HOTTER RESULTS FAILED
  8748. PASSED PISSUP SCORCHER RESTART SUNBURN ARCHIE SPOOK SHIVER HALLOWEEN
  8749. COOLING BONFIRE WEEEEEE FIREWORKS CHILLY CHRISTMAS HOLLY PRESENTS MERRY!
  8750. 2.10
  8751. (D’you get the significance of the passwords?? Ed.)
  8752. 2.10
  8753. •   View to FWP − When using the utility provided with First Word Plus
  8754. to convert View files, Robert Leon noted that the left margin default
  8755. (in the Print File dialogue window) should be changed to 4, otherwise
  8756. the file is not printed properly.
  8757. 2.10
  8758. •   Using 1st Mail for multi-column printouts − David Scott − Text which
  8759. is to be printed in more than one column is first prepared with First
  8760. Word Plus and it is at this stage that preparations must be made for the
  8761. print format. The text format must suit the final required column width
  8762. otherwise First Mail will ignore the instructions to print out in multi
  8763. columns.
  8764. 2.10
  8765. An example will show how to lay out the text. Suppose that you require
  8766. two columns each 31 characters wide set side by side on a 65 character
  8767. wide sheet. This will be possible as it allows 3 characters for the
  8768. central white column since
  8769. 2.10
  8770.  31 + 3 + 31 = 65
  8771. 2.10
  8772. The text must be prepared using a line length of 31 characters. The page
  8773. markings in First Word Plus will show final page 1 column 1 as page 1,
  8774. final page 1 column 2 as page 2, final page 2 column 1 as page 3 and so
  8775. on.
  8776. 2.10
  8777. When the text has been fully prepared enter First Mail and follow the
  8778. instructions given on pages 196 and 197 of the manual. The number of
  8779. columns must be set to 2 in this example.
  8780. 2.10
  8781. •   Another possible bug in First Mail − David Leckie − When using First
  8782. Word Plus with the ruler set to double line spacing, continuous text,
  8783. i.e. no returns are double spaced but text followed with a return is not
  8784. double spaced as you would expect.
  8785. 2.10
  8786. However when a First Mail mail-merge is done from the file, the mrg file
  8787. contains double spaced text where there was single spaced text in the
  8788. original doc. Thus if you want, say, your address lines to be double
  8789. spaced then they should be a RETURN between each line in the doc file
  8790. only if you are not going to do a First Mail mail merge. If you are
  8791. doing a mail merge then they should be single spaced i.e. no RETURNS
  8792. because after the mail merge double line spacing will be inserted! Very
  8793. funny!
  8794. 2.10
  8795. •   “Memalloc” module − John Fidler was playing with the !Lander program
  8796. in RISC-OS when he realised that it should not have run with the
  8797. configuration settings on his machine. He looked in the !Lander
  8798. directory (by clicking on the icon in the directory viewer while holding
  8799. the <shift> key) and found the Memalloc module.
  8800. 2.10
  8801. This module provides nine new star commands, which allow you to check
  8802. and alter the size of various memory pools i.e. system heap, RMA, screen
  8803. area, sprite area and font cache.
  8804. 2.10
  8805. ==> Help on keyword MemAlloc
  8806. 2.10
  8807. Module is: MemAlloc util 0.11 (06 Dec 1988)
  8808. 2.10
  8809. Commands provided:
  8810. 2.10
  8811. SystemSize RMASize ScreenSize SpriteSize FontSize
  8812. 2.10
  8813. RAMFSSize RMAFree SpriteFree FontFree
  8814. 2.10
  8815. •   Desktop ScreenSize configuration − When using the desktop, the
  8816. memory allocated to the screen area is regulated by the desktop screen
  8817. mode and not the configuration setting e.g. if you are in mode 12 then
  8818. the screen area will have 80k allocated to it (or 96k for the 400
  8819. series).
  8820. 2.10
  8821. •   Desktop startup commands − When starting the desktop using *Desktop,
  8822. you can make the Archimedes run a file or perform a star command. This
  8823. facility could be used to start the desktop up in a predefined state.
  8824. 2.10
  8825. ==> Help on keyword Desktop
  8826. 2.10
  8827. *Desktop starts up any dormant Wimp modules, and also passes an optional
  8828. 2.10
  8829. *command or file of *commands to Wimp_StartTask.
  8830. 2.10
  8831. Syntax: *Desktop [<*command> | -File <filename>]
  8832. 2.10
  8833. •   Converting ArcTerm 6.01 to RISC-OS − Arc-Term 6.01 will work under
  8834. RISC-OS if you make a !Run file in the !ArcTerm application directory:
  8835. 2.10
  8836. RMEnsure InternationalKeyboard 0.17
  8837. 2.10
  8838. RMReInit InternationalKeyboard
  8839. 2.10
  8840. DIR <Obey$Dir>.!ArcTerm
  8841. 2.10
  8842. Run ArcTerm
  8843. 2.10
  8844. •   Extra Options for the Copy Command − The new User Guide (page 208)
  8845. lists a number of new options for the Copy command which considerably
  8846. extend its usefulness. The L and N options are par-ticularly useful for
  8847. performing backups from hard disc to floppy disc. Thus the command:
  8848. 2.10
  8849.  *Copy HD::$.A.* FL::$.* ~CFQR
  8850. 2.10
  8851. will make a quick backup, without confirmation, of all the files and
  8852. subdirectories in directory A of the hard disc named HD onto the floppy
  8853. disc named FL. If however the option N is also added then only the files
  8854. which have changed since the last backup will be copied, thus reducing
  8855. the backup time consider-ably. If the L option is also added then even
  8856. more time is saved as the directories of both source and destination
  8857. disks are checked before any attempt is made to load the files
  8858. themselves.
  8859. 2.10
  8860. If suitable Copy commands are added to the end of an application !Run
  8861. file then an automatic backup of changed files can be made when you have
  8862. finished using the application. In this case it is vital to quote the
  8863. name of the required backup floppy disc so that a request to load it can
  8864. be given if it is not already in the drive.
  8865. 2.10
  8866. •   RISC-OS RS423 − Richard House says that using RISC-OS he can now
  8867. communicate with his BBC Model B at 19200 baud, without any errors
  8868. (whereas under Arthur 1.2, even with the patch, he was limited to 9600
  8869. baud).
  8870. 2.10
  8871. •   Diagram II using RAMdisc − Load the file “Setup” and change the “8”
  8872. in lines 10045, 10750, 10765, 10805 and 11325 to “23”. This will cause
  8873. it to access the ram-disk (assuming you copied Diagram II over to the
  8874. ram-disk) thereby running much faster during scrolling and saving wear
  8875. and tear on your floppy or hard disk. (J.Daniels of Pineapple Software)
  8876. 2.10
  8877. •   MIDI !Maestro − One reader says that there is an undocumented
  8878. facility in the !Maestro application which can play a MIDI instrument if
  8879. the MIDI podule is fitted.
  8880. 2.10
  8881. •   Typing control characters − If you wish to use a “non-keyboard”
  8882. character under RISC-OS, just hold down the <ALT> key and type in the
  8883. character number on the keypad.
  8884. 2.10
  8885. •   RMReInit SpriteUtils − Many applications unplug modules and
  8886. reinitialise them later. Often, under RISC-OS, the SpriteUtils module
  8887. does not get reinitialised. If you have any problems loading sprites or
  8888. get the “SWI not known” error, you can check whether your modules have
  8889. been reinitialised properly by typing *ROMModules.
  8890. 2.10
  8891. One reader says that ‘Pacmania’ can be cured of this by adding the
  8892. following line to the !BOOT file:
  8893. 2.10
  8894. 935 *RMReInit SpriteUtils
  8895. 2.10
  8896. •   Multi-Tasking − How many tasks can RISC-OS run simultaneously? The
  8897. manual doesn’t say, so I decided to find out by loading multiple copies
  8898. of the desktop clock. When I tried to load the 29th clock I got an error
  8899. message “Too many tasks”, making the upper limit 28.
  8900. 2.10
  8901. •   Leaving the Desktop from a Command File − David Scott − The answer
  8902. to my own previous help query is actually quite simple when you know
  8903. how! The last command in the file, which must be an obey file, (it does
  8904. not work with an exec file) must be:
  8905. 2.10
  8906. *fx138,0,252
  8907. 2.10
  8908. which simulates pressing <control-shift-f12>.
  8909. 2.10
  8910. •   Space for large applications − The methods used by Acorn and other
  8911. suppliers of application software to load their applications which
  8912. require a lot of space, seem to be both devious and, in many cases,
  8913. ineffective since they result in less space being available for the
  8914. application than under Arthur 1.2.
  8915. 2.10
  8916. The method illustrated below allows over 300k of data space in Logistix
  8917. or over 600k of memory with the PC Emulator on a 1Mbyte machine. The
  8918. technique is a three stage process and is illustrated for Logistix.
  8919. 2.10
  8920. Note that the machine will have to be reset after using the application
  8921. in order to restore all the normal modules and their facilities.
  8922. 2.10
  8923. Note also that the amount of free space will vary depending on the
  8924. configuration settings. In my case, these are 80k for the screen (Mode
  8925. 12) and 0K for System sprites, font cache and RAM FS.
  8926. 2.10
  8927. If you use Econet then the modules NetFS, NetPrint, BBCEconet, NetFiler
  8928. and NetStatus should also be killed in Stage 2. If you do not use Econet
  8929. then you will gain marginally more space for all applications by
  8930. *Unplugging these modules as I have done.
  8931. 2.10
  8932. Stage 1 − Set up the standard !Run file for the application so that it
  8933. sets a function key to execute the stage 2 file after quitting the
  8934. desktop.
  8935. 2.10
  8936. | >$.!Logistix.!Run
  8937. 2.10
  8938. IconSprites <Obey$Dir>.!Sprites
  8939. 2.10
  8940. Key1 Quit|MDir $|MExec $.!Logistix.Lgx1|M
  8941. 2.10
  8942. Fx138,0,252
  8943. 2.10
  8944. Fx138,0,129
  8945. 2.10
  8946. Stage 2 − This file must be an command file (not Obey). It clears the
  8947. temporary modules and then kills all the unwanted modules. A function
  8948. key is then set up to execute Stage 3 and the file ends by recovering
  8949. the freed space using the RMTidy com-mand which must be the last command
  8950. in the file.
  8951. 2.10
  8952. | >$.!Logistix.Lgx1
  8953. 2.10
  8954. RMClear
  8955. 2.10
  8956. RMKill Debugger
  8957. 2.10
  8958. RMKill Desktop
  8959. 2.10
  8960. RMKill WindowManager
  8961. 2.10
  8962. RMKill FontManager
  8963. 2.10
  8964. RMKill InternationalKeyboard
  8965. 2.10
  8966. RMKill SoundScheduler
  8967. 2.10
  8968. RMKill StringLib
  8969. 2.10
  8970. RMKill Percussion
  8971. 2.10
  8972. RMKill SpriteExtend
  8973. 2.10
  8974. RMKill Draw
  8975. 2.10
  8976. RMKill Hourglass
  8977. 2.10
  8978. RMKill Podule
  8979. 2.10
  8980. Key 1 *Obey $.!Logistix.Lgx2|M
  8981. 2.10
  8982. FX138 0 129
  8983. 2.10
  8984. RMTidy
  8985. 2.10
  8986. Stage 3 − This Obey file sets the current directory (it was cleared by
  8987. the radical effects of RMtidy) and then loads the Floating point
  8988. emulator and Logistix directly. The final line is an optional backup
  8989. command which automatically backs the new and changed data files up to a
  8990. floppy disc (named S1 in this case).
  8991. 2.10
  8992. | >$.!Logistix.Lgx2
  8993. 2.10
  8994. Dir $.!Logistix
  8995. 2.10
  8996. RMLoad $.!System.Modules.
  8997. 2.10
  8998. FPEmulator
  8999. 2.10
  9000. Lgx
  9001. 2.10
  9002. COPY :DJS.!Logistix.Sheet.* :S1.*
  9003. 2.10
  9004.  ~CFLNQ
  9005. 2.10
  9006. PC Emulator − The method is similar for stages 1 and 2 except the
  9007. following additional modules can be killed in stage 2: SystemDevices,
  9008. TaskManager, PaletteUtil, Filer, ADFSFiler, RAMFSFiler, ShellCLI and
  9009. RamFS. Stage 3 is not required as the line which sets the function key
  9010. termination command is:
  9011. 2.10
  9012. Key 1 PC.Emulate|M
  9013. 2.10
  9014. which enters the PC Emulator directly. Note that the PC directory must
  9015. be in the root and must be called PC otherwise the Emulator fails during
  9016. loading.
  9017. 2.10
  9018. •   Getting First Word Plus started − further to the comments on page
  9019. 20/21, last month, it is not a good idea to use *MOUNT as First Word
  9020. Plus will then not allow you to change discs, *DRIVE should be used and
  9021. this works fine. My machine is configured to boot with the external
  9022. drive selected, which usually holds a “library disc”, which is how I
  9023. discovered the problem. First Word Plus now boots happily under RISC-OS,
  9024. including an amended version of the key press module which traps <ctrl-
  9025. f12> to provide a command line similar to that on the desk top − i.e.
  9026. scrolling up from the bottom of the screen. (We’ll try to get hold of
  9027. this for the monthly disc. Ed.)
  9028. 2.10
  9029. •   First Word Plus from the RISC-OS desktop − create the following run
  9030. file:
  9031. 2.10
  9032. !Run
  9033. 2.10
  9034. | !Run for !First Word Plus+ version 0.01
  9035. 2.10
  9036. IconSprites <Obey$Dir>.!Sprites
  9037. 2.10
  9038. WimpSlot -min 400k
  9039. 2.10
  9040. set FirstWordPlus$Resources $.Resources.1wp.
  9041. 2.10
  9042. set FirstWordPlus$Docs &.1wp.
  9043. 2.10
  9044. echo<5><23><17><7><6><8><0><8><0>
  9045. 2.10
  9046. <0><0><0><0>
  9047. 2.10
  9048. run “<FirstWordPlus$Resources>1wp”
  9049. 2.10
  9050. •   First Mail under RISC-OS − David Leckie − While First Word Plus has
  9051. drawn a lot of comment, very little mention has been made First Mail,
  9052. the mail merge program that accompanies it.
  9053. 2.10
  9054. When run under RISC-OS the main window will not resize. Now this may not
  9055. seem like much of a problem but the trouble is that the printer window
  9056. is hidden under the main window and cannot be easily accessed.
  9057. 2.10
  9058. Fortunately the corners of the window are just visible and can be
  9059. clicked on. The printer driver window pops up when clicked on ok, but
  9060. while the destination printer window can be clicked on, the name of the
  9061. selected destination printer is still hidden. This problem is compounded
  9062. by the last line of the 1st paragraph on page 154 of the manual being
  9063. wrong. “The four options Parallel Port, Serial Port, Network Port and
  9064. Disc will appear in rotation.
  9065. 2.10
  9066. They do not rotate in the order above. Parallel Port is the first and
  9067. Disk is the third not fourth but which is network and serial? Can
  9068. someone with Arthur please tell us?
  9069. 2.10
  9070. Thus, if you want to do a merge to parallel printer it works fine. For
  9071. disc, point to the corner of the window and give 2 clicks (not 3). If
  9072. you need serial or network, try 1 or 3 clicks.
  9073. 2.10
  9074. Thanks to Mark Burch who helped to crack the problem.
  9075. 2.10
  9076. •   Installing Artisan − Sean Kelly − There are three tips: the first is
  9077. on getting Artisan to return control to the desktop without resetting
  9078. the system; the second is on putting Artisan in any chosen directory;
  9079. the third is not strictly related to RISC-OS, but is on persuading
  9080. Artisan to work with compressed screens.
  9081. 2.10
  9082. Returning to the desktop − When Artisan is installed as described on the
  9083. RISC-OS support disc, it does not return correctly to the desktop. The
  9084. following modification was made to the program on my A440, and works
  9085. perfectly:
  9086. 2.10
  9087. 1. Load program ART5 and, using the BASIC EDITOR, find the line: “DEF
  9088. PROCLAR”
  9089. 2.10
  9090. 2. The next line should be a multi-statement line containing in-line
  9091. assembly code. If so, you have found the correct routine. Delete
  9092. everything on this line except for the first three statements and then
  9093. add “:QUIT” so that the new line reads:
  9094. 2.10
  9095. MODE12:OSCLI“FX4”:OSCLI“UP”:QUIT
  9096. 2.10
  9097. 3. Rename the old ART5 (in case you have made a mistake) and save the
  9098. new version as ART5.
  9099. 2.10
  9100. This new version returns to the desktop, in the same condition as when
  9101. Artisan was called, when you quit Artisan.
  9102. 2.10
  9103. Altering the directory structure − When installed using the hard disc
  9104. install program, Artisan insists on living in a directory called
  9105. :4.$.Artisan. This can be changed − the following details relate to my
  9106. chosen directory of :4.$.APPS.!ARTISAN.
  9107. 2.10
  9108. 1. !RUN should be altered from the support disc version. The new version
  9109. is:
  9110. 2.10
  9111. ECHO <22><&8C>
  9112. 2.10
  9113. WIMPSLOT -MIN 200k
  9114. 2.10
  9115. DIR :4.$.APPS.!ARTISAN *** put your own directory here ***
  9116. 2.10
  9117. URD @ BASIC ART4
  9118. 2.10
  9119. In my case, the pathname of !RUN is “:4.$.APPS. !ARTISAN.!RUN”. Before
  9120. changing !RUN, re-name the old one in case of accident.
  9121. 2.10
  9122. 2. Alter ART5 using the Basic Editor. Several lines need changing; in
  9123. each case the change consists of altering the given directory to point
  9124. to your new directory. The lines that need altering can be found by
  9125. searching for the following strings using the editor (they are all
  9126. unambiguous, but the case of each letter is crucial):
  9127. 2.10
  9128. cLare%=FALSE:
  9129. 2.10
  9130. A%=cLARESMI
  9131. 2.10
  9132. WHEN12:OSCLI
  9133. 2.10
  9134. WHEN1:OSCLI“LOAD
  9135. 2.10
  9136. OSCLI“CDIR
  9137. 2.10
  9138. OSCLI“DIR ”+ClA$+
  9139. 2.10
  9140. Preserve the old ART5 in case of problems.
  9141. 2.10
  9142. •   Adapting Artisan for Compressed Screens − I use a modified version
  9143. of the screen compression routine originally published in Personal
  9144. Computer World magazine. It uses the commands *CSCREENLOAD and
  9145. *CSCREENSAVE to load and save compressed screens, and compressed screens
  9146. are given the filetype &010. The adaptation below will work equally well
  9147. with other com-pression routines with the proviso that the compressed
  9148. screen loading routine must recog-nize and correctly deal with normally
  9149. saved screens (filetype &FF9).
  9150. 2.10
  9151. 1. Load ART5 and modify it using the BASIC Editor (first rename ART5, in
  9152. case of errors). Immediately after the REM statements at the start of
  9153. the program, add these two lines (substituting your own compressed
  9154. screen save and load commands):
  9155. 2.10
  9156. *SET Alias$SCREENSAVE CSCREENSAVE %0
  9157. 2.10
  9158. *SET Alias$SCREENLOAD CSCREENLOAD %0
  9159. 2.10
  9160. Substitute the names of your own commands for CSCREENSAVE and
  9161. CSCREENLOAD.
  9162. 2.10
  9163. 2. Find DEFPROCcLaRESM with the editor. Look about 14 lines down and
  9164. there will be a line beginning with WHEN&FF9. Four lines further down
  9165. should be a line beginning with ENDIF. Add two new lines after this
  9166. ENDIF line (substituting your own compressed screen filetype):
  9167. 2.10
  9168. WHEN &010
  9169. 2.10
  9170. RES%=3:mIC%=ReSM%:ReSM%+=1:cLarESM%=7
  9171. 2.10
  9172. 3. Find DEFPROCPS with the editor. Look about seventeen lines down and
  9173. there will be a line beginning with WHEN&FF9. Six lines further down
  9174. should be a line beginning with ENDIF. Add two new lines after this
  9175. ENDIF line (substituting your own compressed screen filetype):
  9176. 2.10
  9177. WHEN &010
  9178. 2.10
  9179. PROCGw(laRES%): clArES%=4
  9180. 2.10
  9181. The modified version of ART5 will correctly handle compressed and
  9182. uncompressed screens for loading, and will normally save screens in
  9183. compressed form.
  9184. 2.10
  9185. •   RISC-OS Postscript Printer Drivers − One of our readers can only use
  9186. a laser printer from an Apple Mac, but wanted to obtain good quality
  9187. images of the documents that he produced in !Draw and !Edit. In order to
  9188. do this he redirected the output of the !PrinterPS to a file and
  9189. ‘ported’ the file across to the Mac. The reason why this works is
  9190. because the output of !PrinterPS application is straight ASCII Post
  9191. script text, so in theory, the resulting file could be used by any
  9192. Postscript set up.
  9193. 2.10
  9194. •   Configuring !PrinterDM − some readers have had problems outputting
  9195. to their dot matrix printers. This might be because the !PrinterDM
  9196. application must be configured for the printer you are using. This can
  9197. be done by clicking, with <select>, on the printer icon (once installed)
  9198. and then clicking on the printer name that appears in a window, until
  9199. the name of your printer appears. Then select the “Save Choice” option
  9200. on the !PrinterDM menu. The printers that !PrinterDM supports are: Epson
  9201. FX, LQ, and LQ-850 compatibles and the NEC Pin-Writer P6 plus.
  9202. 2.10
  9203. •   RISC-OS multisync text scaling solution! − Richard Averill − If you
  9204. turn back to Archive 2.9 p14, you will see the problem of text scaling
  9205. in multisync modes raised. Having also experienced this problem, I tried
  9206. to solve it.
  9207. 2.10
  9208. Firstly, I tried using the output to sprites feature to modify this.
  9209. Since this did not alter the size of the font at all, I then tried a
  9210. more interesting method. I knew that the standard vdu 5 font size was
  9211. 8x8 pixels, so I ran the following program to tell me which locations in
  9212. the operating system’s workspace (&0000-&7FFF) contained the value 8.
  9213. 2.10
  9214. 10 REM > $.TextSize.Find8
  9215. 2.10
  9216. 20 REM (C) Richard Averill, 1989.
  9217. 2.10
  9218. 30 FOR I%=0 TO &7FFC STEP 4
  9219. 2.10
  9220. 40 IF !I%=8 THEN PRINT ~I%;
  9221. 2.10
  9222. 50 NEXT
  9223. 2.10
  9224. I then had a list of locations, so I set vdu 5 mode and *Memory’ed each
  9225. of the locations to have a closer look. Storing 16 in the second
  9226. location (&1360) caused the x text size to be doubled! There were 3 more
  9227. 8‘s consecutively after this value, so after a little testing I came to
  9228. the conclusion shown by the following table:
  9229. 2.10
  9230. Address   Contents
  9231. 2.10
  9232. &1360   x size
  9233. 2.10
  9234. &1364   y size
  9235. 2.10
  9236. &1368   x spacing
  9237. 2.10
  9238. &136C   y spacing
  9239. 2.10
  9240. All values are given in pixels, so by default these are 8,8,8,8. The
  9241. WIMP manager changes the x and y values according to the x and y ‘eig’
  9242. factors read by swi OS_ReadModeVariable detailed in OS1.2 PRM pages
  9243. 124−126. Note that the values need not be multiples of 8, but the
  9244. characters will look rather odd otherwise!
  9245. 2.10
  9246. The following procedure will enable you to set the text size and
  9247. spacing. The syntax is PROCtextsize(x size, y size, x spacing, y
  9248. spacing).
  9249. 2.10
  9250. 10000 DEF PROCtextsize(x%,y%,sx%
  9251. 2.10
  9252. ,sy%)
  9253. 2.10
  9254. 10010 !&1360=x%
  9255. 2.10
  9256. 10020 !&1364=y%
  9257. 2.10
  9258. 10030 !&1368=sx%
  9259. 2.10
  9260. 10040 !&136C=sy%
  9261. 2.10
  9262. 10050 ENDPROC
  9263. 2.10
  9264. For example, PROCtextsize(16,8,16,8) will give you double width text
  9265. when in VDU 5 mode. This will be square in mode 12 etc. and of a
  9266. rectangular shape in mode 20 etc. The text spacing will usually be the
  9267. same as the text size.
  9268. 2.10
  9269. To set the default text size from the RISC-OS desktop (the answer to the
  9270. query,) run the following program (which is in the “$.TextSize”
  9271. directory of the monthly disc) from within the desktop, and it will
  9272. redraw the whole screen to enable the new size to take effect.
  9273. 2.10
  9274.  10 REM > $.TextSize.SetSize
  9275. 2.10
  9276.  20 REM (C) Richard Averill, 1989.
  9277. 2.10
  9278.  30 REM restores default text size and spacing in the RISC-OS desktop.
  9279. 2.10
  9280.  40
  9281. 2.10
  9282.  50 !&1360=8
  9283. 2.10
  9284.  60 !&1364=8
  9285. 2.10
  9286.  70 !&1368=8
  9287. 2.10
  9288.  80 !&136C=8
  9289. 2.10
  9290.  90 SYS “Wimp_Initialise”,200,
  9291. 2.10
  9292. &4B534154 TO task%
  9293. 2.10
  9294. 100 SYS “Wimp_ForceRedraw”,-1,0,0,
  9295. 2.10
  9296. &FFFF,&FFFF
  9297. 2.10
  9298. 110 SYS “Wimp_CloseDown”,task%,
  9299. 2.10
  9300. &4B534154
  9301. 2.10
  9302. 120 QUIT
  9303. 2.10
  9304. This will set the text size to 8 pixels, the same as under the Arthur
  9305. WIMP manager. So if you have a high resolution monochrome, the text will
  9306. become four times smaller in each direction than normal!
  9307. 2.10
  9308. Unfortunately, there is a slight problem. The RISC-OS WIMP assumes
  9309. scaling will be done to ensure that the size of the text is always 16x32
  9310. OS units and uses these values when calculating text widths/heights
  9311. instead of finding the sizes from the operating system. So any verti
  9312. cally centred text (such as window titles) will not be centred properly
  9313. in multisync modes!
  9314. 2.10
  9315. For real compatibility with Arthur 1.2 WIMP applications, you can save
  9316. the Arthur 1.2 WindowManager module from ROM to disc and *RMLoad this
  9317. into RISC-OS instead. The Arthur 1.2 WIMP module is in the “$.TextSize”
  9318. directory of this month’s programs disc.
  9319. 2.10
  9320.  
  9321.  
  9322.  
  9323. •   Limited ADFS memory (RISC-OS/Arthur 1.2) − One reader has written in
  9324. saying that his Archimedes will only *MOUNT six discs. On the seventh,
  9325. the drive spins continuously until the disc is removed. This happens
  9326. because the ADFS only has a limited amount of memory to store the
  9327. directory information. The amount of memory allocated for this can
  9328. controlled by using *Configure ADFSDirCache.
  9329. ==> Help on keyword ADFSDirCache
  9330. *Configure ADFSDirCache sets the size of the directory cache (in Kbytes)
  9331. used by the ADFS. A value of 0 selects a default value which depends on
  9332. RAM size.
  9333. Syntax: *Configure ADFSDirCache <size>[K]
  9334. You can also make the Archimedes forget that it has seen the disc by
  9335. using *DISMOUNT.
  9336. 2.11
  9337. ==> Help on keyword Dismount
  9338. 2.11
  9339. *Dismount closes files, unsets directories and parks the given disc.
  9340. 2.11
  9341. Syntax: *Dismount [<disc spec.>]
  9342. 2.11
  9343. •   Three floppies for Arthur 1.2 desktop − In Archive 2.8, pages 11/12,
  9344. there is a hint which allows you to access three drives from the
  9345. desktop. However, the hint states that you must start the desktop up by
  9346. typing */Desktop instead of *Desktop. One reader says that you could of
  9347. course set up *Set Alias$Desktop Run Desktop which would then allow you
  9348. to start up using *Desktop.
  9349. 2.11
  9350. •   In First Word Plus, when printing after opening more than one file,
  9351. the first file you opened will be offered for printing, not the last one
  9352. you closed!
  9353. 2.11
  9354. •   Configuring your printer under the PC Emulator − In reply to Chris
  9355. Walker’s question, you must use the following reserved words when
  9356. configuring your printer:
  9357. 2.11
  9358. For serial printers use: AUX or COM1, COM2, COM3É
  9359. 2.11
  9360. For parallel printers use: PRN or LPT1, LPT2É
  9361. 2.11
  9362. •   Sprite Plot comments from Martin Simmons − The article on sprite
  9363. plotting was interesting since it is always good to see how other
  9364. programmers solve problems. However, the routines are far from being the
  9365. fastest possible, a major inefficiency being that the screen pointer is
  9366. updated after every pixel is plotted. This could be rectified by
  9367. deleting 2410, 2460, 2510, 2580 and changing the following:
  9368. 2.11
  9369. 2010 PROCplot_4_pixels(4*
  9370. 2.11
  9371. (gjenta-1))
  9372. 2.11
  9373. 2050 ADD screen_pointerR,
  9374. 2.11
  9375. screen_pointerR,#320
  9376. 2.11
  9377. 2110 DEF PROCplot_4_pixels(index)
  9378. 2.11
  9379. 2400 STRNEB data5R,
  9380. 2.11
  9381. [screen_pointerR,#index+0]
  9382. 2.11
  9383. 2450 STRNEB data5R,
  9384. 2.11
  9385. [screen_pointerR,#index+1]
  9386. 2.11
  9387. 2500 STRNEB data5R,
  9388. 2.11
  9389. [screen_pointerR,#index+2]
  9390. 2.11
  9391. 2570 STRNEB data5R,
  9392. 2.11
  9393. [screen_pointerR,#index+3]
  9394. 2.11
  9395. Now the pointer is only changed at the end of each line. This improves
  9396. performance over the published routine by about 10% for a 24x24 pixel
  9397. sprite with no black pixels.
  9398. 2.11
  9399. It would be quicker to use word stores instead of byte stores but this
  9400. would complicate the routine and may even slow it down overall.
  9401. 2.11
  9402. •   D.I.Y. A3000 serial interface − Mike Harrison (Archive 2.10 p 56)
  9403. didn’t know what the chip numbers were for the A3000 serial interface
  9404. kit. You need a 6551 (which ought to be one of the ones manufactured by
  9405. CMD) and an LT1133.
  9406. 2.11
  9407. •   Evaluation of Algebraic Expressions (E.D. Engelhardt) − Anyone who
  9408. is interested in the evaluation of valid algebraic expressions could try
  9409. to use PROCexpression in program Evalexpr as given below. The procedure
  9410. mentioned has been written using suggestions of Mr de Heus, ECD, Delft,
  9411. Holland.
  9412. 2.11
  9413. Variable names in an expression are single, lower-case characters
  9414. ranging from ‘a’ to ‘z’. These names are stored in ‘var$’. Each
  9415. character in the input expression ‘ex$’ is matched with its presence in
  9416. ‘var$’. If so, its position in ‘var$’ is detected and it is replaced by
  9417. the (arbitrary) character ‘$’. The position is used to assign an
  9418. appropriate value to the actual variable by means of array ‘var()’. The
  9419. value of the expression is obtained using the EVAL function.
  9420. 2.11
  9421. The reason EVAL(ex$) is preceded by EVAL (“FALSE”) in PROCevalexpression
  9422. is as follows: If one enters an expression containing no variables but
  9423. numbers only, and the expression cannot be evaluated (e.g. LN0 or 3/0)
  9424. an error message appears on the screen. Thereafter, entering the same
  9425. type of expression, again not containing variables (e.g. LN9 after LN0
  9426. or 6/5 after 3/0), results in the same error message. To prevent this
  9427. from happening the instruction EVAL(“<>”) is included. I discovered this
  9428. ‘feature’ by accident and found the solution by trial and error. I would
  9429. appreciate any comments from interested readers.
  9430. 2.11
  9431.  10 REM >Evalexpr
  9432. 2.11
  9433.  20 :
  9434. 2.11
  9435.  30 WHILE TRUE
  9436. 2.11
  9437.  40   PROCevalexpression
  9438. 2.11
  9439.  50 ENDWHILE
  9440. 2.11
  9441.  60 END
  9442. 2.11
  9443.  70 :
  9444. 2.11
  9445.  80:
  9446. 2.11
  9447.  90 DEFPROCevalexpression
  9448. 2.11
  9449. 100 k$=“ Press any key to continue !”
  9450. 2.11
  9451. 110 LOCAL ERROR
  9452. 2.11
  9453. 120 ON ERROR LOCAL IF ERR=17 THEN
  9454. 2.11
  9455.  PRINT‘’“ *** Escaped program !”‘
  9456. 2.11
  9457. :END ELSE PRINT‘“ ”;REPORT$’‘k$;:
  9458. 2.11
  9459. dummy=GET:ENDPROC
  9460. 2.11
  9461. 130 :
  9462. 2.11
  9463. 140 PROCinput
  9464. 2.11
  9465. 150 :
  9466. 2.11
  9467. 160 PROCexpression
  9468. 2.11
  9469. 170 exval=EVAL(“FALSE”)  :REM
  9470. 2.11
  9471. *** To prevent error message
  9472. 2.11
  9473.  after evaluation of a wrong
  9474. 2.11
  9475.  expression, e.g. LN0. Try to                                   REM this
  9476. line !
  9477. 2.11
  9478. 180 exval=EVAL(ex$)
  9479. 2.11
  9480. 190 :
  9481. 2.11
  9482. 200 PROCoutput
  9483. 2.11
  9484. 210 ENDPROC
  9485. 2.11
  9486. 220 :
  9487. 2.11
  9488. 230 DEFPROCinput
  9489. 2.11
  9490. 240 CLS:PRINT‘“ Choice of variables
  9491. 2.11
  9492.  from a to z.“‘
  9493. 2.11
  9494. 250 LINE INPUT“ Give expression : ”
  9495. 2.11
  9496. ex$
  9497. 2.11
  9498. 260 ENDPROC
  9499. 2.11
  9500. 270 :
  9501. 2.11
  9502. 280 DEFPROCoutput
  9503. 2.11
  9504. 290 PRINT‘“ Function value of ”;ex$
  9505. 2.11
  9506. ;“ = ”;exval
  9507. 2.11
  9508. 300 PRINT’k$;:dummy=GET
  9509. 2.11
  9510. 310 ENDPROC
  9511. 2.11
  9512. 320 :
  9513. 2.11
  9514. 330 DEFPROCexpression
  9515. 2.11
  9516. 340 LOCAL var$,var(),t%,i%
  9517. 2.11
  9518. 350 var$=“abcdefghijklmnopqrstuvw
  9519. 2.11
  9520. xyz“
  9521. 2.11
  9522. 360 DIM var(LEN(var$))
  9523. 2.11
  9524. 370 :
  9525. 2.11
  9526. 380 FOR t%=1 TO LEN(ex$)
  9527. 2.11
  9528. 390   i%=INSTR(var$,MID$(ex$,t%,1))
  9529. 2.11
  9530. 400   IF i%>0 THEN
  9531. 2.11
  9532. 410     var$=LEFT$(var$,i%-1)+“$”
  9533. 2.11
  9534. +MID$(var$,i%+1)
  9535. 2.11
  9536. 420     PRINT‘“ Value of  ”;
  9537. 2.11
  9538. MID$(ex$,t%,1);“     : ”;
  9539. 2.11
  9540. 430     INPUT“”var(i%)
  9541. 2.11
  9542. 440     :
  9543. 2.11
  9544. 450     CASE i% OF
  9545. 2.11
  9546. 460       WHEN  1:a=var(i%)
  9547. 2.11
  9548. 470       WHEN  2:b=var(i%)
  9549. 2.11
  9550. 480       WHEN  3:c=var(i%)
  9551. 2.11
  9552. 490       WHEN  4:d=var(i%)
  9553. 2.11
  9554. 500       WHEN  5:e=var(i%)
  9555. 2.11
  9556. 510       WHEN  6:f=var(i%)
  9557. 2.11
  9558. 520       WHEN  7:g=var(i%)
  9559. 2.11
  9560. 530       WHEN  8:h=var(i%)
  9561. 2.11
  9562. 540       WHEN  9:i=var(i%)
  9563. 2.11
  9564. 550       WHEN 10:j=var(i%)
  9565. 2.11
  9566. 560       WHEN 11:k=var(i%)
  9567. 2.11
  9568. 570       WHEN 12:l=var(i%)
  9569. 2.11
  9570. 580       WHEN 13:m=var(i%)
  9571. 2.11
  9572. 590       WHEN 14:n=var(i%)
  9573. 2.11
  9574. 600       WHEN 15:o=var(i%)
  9575. 2.11
  9576. 610       WHEN 16:p=var(i%)
  9577. 2.11
  9578. 620       WHEN 17:q=var(i%)
  9579. 2.11
  9580. 630       WHEN 18:r=var(i%)
  9581. 2.11
  9582. 640       WHEN 19:s=var(i%)
  9583. 2.11
  9584. 650       WHEN 20:t=var(i%)
  9585. 2.11
  9586. 660       WHEN 21:u=var(i%)
  9587. 2.11
  9588. 670       WHEN 22:v=var(i%)
  9589. 2.11
  9590. 680       WHEN 23:w=var(i%)
  9591. 2.11
  9592. 690       WHEN 24:x=var(i%)
  9593. 2.11
  9594. 700       WHEN 25:y=var(i%)
  9595. 2.11
  9596. 710       WHEN 26:z=var(i%)
  9597. 2.11
  9598. 720     ENDCASE
  9599. 2.11
  9600. 730   ENDIF
  9601. 2.11
  9602. 740 NEXT
  9603. 2.11
  9604. 750 :
  9605. 2.11
  9606. 760 ENDPROC
  9607. 2.11
  9608.  
  9609. 2.11
  9610. •   First Word Plus − I am sure that all users of First Word Plus have
  9611. found it considerably enhanced by the use of Steve Hoare’s Interrupt
  9612. Module (available on Shareware N¼6). The main use for this is in
  9613. mounting new discs, formatting and creating directories. I have recently
  9614. discovered that it can also be used for *EXECing files into the word
  9615. processor. This can be very useful because First Word Plus treats the
  9616. standard ASCII space character as a ‘hard’ space. This means that if
  9617. straight ASCII text is read into First Word Plus in the regular way it
  9618. can not be formatted because each line is treated as an entire word. By
  9619. using the interrupt module and *EXECing the file it is as if it were
  9620. being typed in from the keyboard. Spaces between words are thus
  9621. translated into ‘soft’ spaces so that the resulting document can be
  9622. formatted in the usual way. Brian Cowan
  9623. 2.11
  9624. •   Greek characters − (Gerald Fitton) For some time now I have been
  9625. considering converting all my old Wordwise files to PipeDream files. 
  9626. The thing that has been putting me off is that, since I teach (amongst
  9627. other things) maths and statistics, I need to be able to print Greek
  9628. letters such as CDSYabc defghijklmnopqrstuvwxy. It is relatively easy
  9629. from Wordwise to define a new character on the Epson FX printer, but not
  9630. so easy to include it in PipeDream’s Printer On string.  I have got
  9631. round this by running a BASIC program from within PipeDream’s !Run file
  9632. that sends the necessary codes for the Greek characters to the printer. 
  9633. You can then have What-You-See-Is-What-You-Get Greek characters on
  9634. screen by using the sequence <Alt>+E+C.  This is what you do:
  9635. 2.11
  9636. Modify the !Run file to include the command
  9637. 2.11
  9638. BASIC -quit “<PipeDream$Dir>.
  9639. 2.11
  9640. Printers.Greek“
  9641. 2.11
  9642. My !Run file now looks like the one below.
  9643. 2.11
  9644. | > !PipeDream.!Run
  9645. 2.11
  9646. Set PipeDream$Dir <Obey$Dir>
  9647. 2.11
  9648. WimpSlot -min 160k -max 640k
  9649. 2.11
  9650. RMReInit InternationalKeyboard
  9651. 2.11
  9652. RMKill InternationalKeyboard
  9653. 2.11
  9654. BASIC -quit “<PipeDream$Dir>.
  9655. 2.11
  9656. Printers.Greek“
  9657. 2.11
  9658. RMEnsure FPEmulator 2.60 RMLoad
  9659. 2.11
  9660.  <System$Path>Modules.FPEmulator
  9661. 2.11
  9662. Set Alias$@RunType_DDE Run
  9663. 2.11
  9664.  <PipeDream$Dir>.!Run %%*0
  9665. 2.11
  9666. Set File$Type_DDE PDream
  9667. 2.11
  9668. IconSprites <PipeDream$Dir>
  9669. 2.11
  9670. .!Sprites
  9671. 2.11
  9672. Load <Obey$Dir>.piped.pd 8000
  9673. 2.11
  9674. DIR <Obey$Dir>
  9675. 2.11
  9676. Echo <26>
  9677. 2.11
  9678. Pointer 0
  9679. 2.11
  9680. Go 8000 ; %*0
  9681. 2.11
  9682. DIR adfs::HardDisc4.$
  9683. 2.11
  9684. Include the new program ‘Greek’ in a suitable directory; I have chosen
  9685. the ‘Printers’ directory.
  9686. 2.11
  9687. 100 REM > <PipeDream$Dir>.
  9688. 2.11
  9689. Printers.Greek
  9690. 2.11
  9691. 150 :
  9692. 2.11
  9693. 160 *Alphabet Greek
  9694. 2.11
  9695. 180 VDU 2
  9696. 2.11
  9697. 200 RESTORE
  9698. 2.11
  9699. 210 REPEAT
  9700. 2.11
  9701. 220 READ byte%
  9702. 2.11
  9703. 230 IF byte%<>-1 THEN VDU 1,byte%
  9704. 2.11
  9705. 240 UNTIL byte%=-1
  9706. 2.11
  9707. 250 :
  9708. 2.11
  9709. 260 VDU 3
  9710. 2.11
  9711. 270 :
  9712. 2.11
  9713. 280 END
  9714. 2.11
  9715. 300 :
  9716. 2.11
  9717. 310 DATA 27,64
  9718. 2.11
  9719. 320 DATA 27,58,0,0,0
  9720. 2.11
  9721. 330 DATA 27,37,1,0
  9722. 2.11
  9723. 340 DATA 27,54
  9724. 2.11
  9725. 350 DATA 27,38,0,108,108
  9726. 2.11
  9727. 360 DATA 136,0,128,0,252,2,0,2,0,0,0,0
  9728. 2.11
  9729. 370 DATA 27,38,0,128,128
  9730. 2.11
  9731. 380 DATA 138,8,4,2,4,8,16,32,64,128
  9732. 2.11
  9733. ,0,0
  9734. 2.11
  9735. 390 DATA 27,38,0,176,176
  9736. 2.11
  9737. 400 DATA 168,0,0,64,160,0,160,64,0,0
  9738. 2.11
  9739. ,0,0
  9740. 2.11
  9741. 410 DATA 27,38,0,177,177
  9742. 2.11
  9743. 420 DATA 139,18,0,18,0,126,0,18,0,18
  9744. 2.11
  9745. ,0,0
  9746. 2.11
  9747. 430 DATA 27,38,0,195,196
  9748. 2.11
  9749. 440 DATA 137,130,124,130,0,128,0,128,
  9750. 2.11
  9751. 64,0,0,0
  9752. 2.11
  9753. 450 DATA 139,2,4,10,16,34,64,130,96,
  9754. 2.11
  9755. 26,4,2
  9756. 2.11
  9757. 460 DATA 27,38,0,211,211
  9758. 2.11
  9759. 470 DATA 139,130,0,198,0,170,0,146,0,
  9760. 2.11
  9761. 130,0,0
  9762. 2.11
  9763. 480 DATA 27,38,0,217,217
  9764. 2.11
  9765. 490 DATA 139,58,68,130,0,128,0,130,68
  9766. 2.11
  9767. ,58,0,0
  9768. 2.11
  9769. 500 DATA 27,38,0,225,249
  9770. 2.11
  9771. 510 DATA 138,28,34,0,34,20,8,20,32,2
  9772. 2.11
  9773. ,0,0
  9774. 2.11
  9775. 520 DATA 138,127,128,18,128,18,128,
  9776. 2.11
  9777. 114,12,0,0,0
  9778. 2.11
  9779. 530 DATA 11,64,0,64,32,16,11,4,8,16
  9780. 2.11
  9781. ,96,0
  9782. 2.11
  9783. 540 DATA 138,12,18,64,178,0,146,0,
  9784. 2.11
  9785. 146,76,0,0
  9786. 2.11
  9787. 550 DATA 137,8,20,8,34,8,34,8,34,0
  9788. 2.11
  9789. ,0,0
  9790. 2.11
  9791. 560 DATA 8,13,144,37,192,5,130,0,0,0
  9792. 2.11
  9793. ,0,0
  9794. 2.11
  9795. 570 DATA 10,64,60,64,0,64,0,64,63,0
  9796. 2.11
  9797. ,0,0
  9798. 2.11
  9799. 580 DATA 138,56,68,16,130,16,130,16,
  9800. 2.11
  9801. 68,56,0,0
  9802. 2.11
  9803. 590 DATA 71,0,0,124,0,4,0,0,0,0,0,0
  9804. 2.11
  9805. 600 DATA 138,62,0,8,0,20,0,34,0,0,0,0
  9806. 2.11
  9807. 610 DATA 136,130,68,40,16,8,4,2,0,0
  9808. 2.11
  9809. ,0,0
  9810. 2.11
  9811. 620 DATA 10,127,0,4,0,4,0,4,120,4,0,0
  9812. 2.11
  9813. 630 DATA 10,64,32,16,8,4,8,16,96,0
  9814. 2.11
  9815. ,0,0
  9816. 2.11
  9817. 640 DATA 9,128,40,212,0,149,0,149,2,0
  9818. 2.11
  9819. ,0,0
  9820. 2.11
  9821. 650 DATA 139,0,0,0,0,0,0,0,0,0,0,0
  9822. 2.11
  9823. 660 DATA 138,32,0,62,0,32,0,62,0,32
  9824. 2.11
  9825. ,0,0
  9826. 2.11
  9827. 670 DATA 9,63,64,0,68,0,68,56,0,0,0,0
  9828. 2.11
  9829. 680 DATA 139,0,0,0,0,0,0,0,0,0,0,0
  9830. 2.11
  9831. 690 DATA 139,28,34,0,34,0,34,28,32,0
  9832. 2.11
  9833. ,32,0
  9834. 2.11
  9835. 700 DATA 10,32,64,0,64,60,64,0,64,0
  9836. 2.11
  9837. ,0,0
  9838. 2.11
  9839. 710 DATA 9,64,56,4,0,4,0,120,0,0,0,0
  9840. 2.11
  9841. 720 DATA 10,56,68,0,68,187,68,0,68,56
  9842. 2.11
  9843. ,0,0
  9844. 2.11
  9845. 730 DATA 9,65,34,20,8,20,34,65,0,0
  9846. 2.11
  9847. ,0,0
  9848. 2.11
  9849. 740 DATA 11,120,4,0,4,251,4,0,4,120
  9850. 2.11
  9851. ,0,0
  9852. 2.11
  9853. 750 DATA 138,28,34,0,2,12,2,0,34,28
  9854. 2.11
  9855. ,0,0
  9856. 2.11
  9857. 760 DATA -1
  9858. 2.11
  9859.  
  9860. 2.11
  9861. Incidently, this shows how you can include a BASIC program within an
  9862. Obey file and then come back to RUN the rest of the Obey file.
  9863. 2.11
  9864. You have to remember to remove ESC “@” from the Printer On string
  9865. otherwise you will lose all the character definitions you have just
  9866. downloaded! G L Fitton.
  9867. 2.11
  9868. This final section of hints and tips has been extracted from the Archive
  9869. Bulletin Board Service (BBS) by Richard Forster.
  9870. 2.11
  9871. (N.B. There may be some over-lap with other H & T, but I don’t have time
  9872. to edit it out − I’m just off on my Holidays. Ed.)
  9873. 2.11
  9874. •   First Word Plus Margins − It is possible to get First Word Plus to
  9875. change its margins permanently, but it is not easy. It may also depend
  9876. on your version of the software, and this method may not work on all
  9877. versions. Make sure you try it on a backup copy!
  9878. 2.11
  9879. 10 wp%=OPENUP(“Resources.1wp.1wp”)
  9880. 2.11
  9881. 20 margin%=8 : REM or whatever is
  9882. 2.11
  9883.  required
  9884. 2.11
  9885. 30 PTR#wp%=&2EF9C
  9886. 2.11
  9887. 40 BPUT#wp%,margin%
  9888. 2.11
  9889. 50 CLOSE#wp%
  9890. 2.11
  9891. •   Taxan Multisync juddering − If you have an A400/1 or A3000 machine
  9892. and are using it with a Taxan Multisync monitor, you may experience some
  9893. juddering which can be overcome thus:
  9894. 2.11
  9895. A400/1: Fit a molex shunt to link 2. If you do not have a spare shunt,
  9896. you can request one from Acorn Customer Services.
  9897. 2.11
  9898. A3000 : Take your machine to your local dealer. The modification is
  9899. different from the A400/1 machines and you must not open your machine.
  9900. 2.11
  9901. •   Using the Yes/No mouse icon − In order to use the Yes/No mouse icon,
  9902. do:
  9903. 2.11
  9904. SWI “OS_Confirm”
  9905. 2.11
  9906. This changes the pointer shape, flushes the mouse buffer, waits until a
  9907. key is pressed and then, on exit: R0 = (lowercased) character pressed, C
  9908. flag is set if ESCAPE, Z flag set if character is ‘Y’
  9909. 2.11
  9910. •   Saving Rom Sprites − To save rom sprites as a standard file, do:
  9911. 2.11
  9912. SYS“Wimp_BaseOfSprites” TO roms%
  9913. 2.11
  9914. SYS“OS_SpriteOp”,524,roms%,“filename”
  9915. 2.11
  9916. Save this as a BASIC program and double click it from the desktop.
  9917. 2.11
  9918. •   Memory Re-allocation − You can re-allocate memory for spritesize,
  9919. screensize etc. by loading a module called MEMALLOC. This can be found
  9920. on Application Disc 2 in directory $.!Lander.
  9921. 2.11
  9922. •   Hourglass  − The following SYS calls affect the hourglass. Note that
  9923. the hourglass is nested, so if you have turned it on twice it must be
  9924. turned off twice.
  9925. 2.11
  9926. SYS“HourGlass_On” − Display Hourglass
  9927. 2.11
  9928. SYS“HourGlass_Off” − Remove Hourglass
  9929. 2.11
  9930. SYS“HourGlass_percentage”,number − Display Hourglass & percentage below.
  9931. 2.11
  9932. SYS“HourGlass_Smash” − Remove all hourglasses
  9933. 2.11
  9934. SYS“HourGlass-LEDs”,%AB − Where A is the top LED, B is the bottom LED
  9935. 2.11
  9936. SYS“HourGlass_On” has a delay of 1/3 sec before actually appearing. To
  9937. make the delay the value of r0 use:
  9938. 2.11
  9939. SYS“HourGlass_Start”
  9940. 2.11
  9941. •   Tiny directories − The adjust button on a tiny directory opens the
  9942. application and removes that tiny directory.
  9943. 2.11
  9944. •   RISC-OS Speedup − The following calls speed up the machine ROMs from
  9945. 4Mhz to 8Mhz. Try them at your own risk. (Although under Arthur they
  9946. caused crashes, they seem to work OK under RISC-OS) The first switches
  9947. to higher speed, the second resets it:
  9948. 2.11
  9949. SYS“OS_UpdateMEMC”,64,64
  9950. 2.11
  9951. SYS“OS_UpdateMEMC”,,64
  9952. 2.11
  9953. •   Terramex Cheat − For infinite lives, when you first load the game,
  9954. type in “SUBJECTTOCHANGE” on the loading screen.
  9955. 2.11
  9956. •   RISC-OS Bugs − Yes, already folk have found begun to find bugs in
  9957. RISC-OS.
  9958. 2.11
  9959. 1) Module files which show up for *cat as modules but are dated 2:27
  9960. 1901 do not get a module icon in a filer window − this is a property of
  9961. unstamped files from AASM/OBJASM.
  9962. 2.11
  9963. 2) Edit does not work properly in modes 2,4 or 5. (But who would want to
  9964. do so?! Ed.)
  9965. 2.11
  9966. 3) You can drag a directory into itself creating an copy within a copy
  9967. until disc space runs out. (Could that be the answer to the ‘library
  9968. virus’ in the Help!!! section? Ed.)
  9969. 2.11
  9970. 4) Resizing the interactive help window can cause the mouse pointer to
  9971. move autonomously up the screen. Try it: Hold button down and resize it,
  9972. keep holding, and it will go for a certain window size always.
  9973. 2.11
  9974. •   MaxGammon under RISC-OS − If you have a copy of this game, the
  9975. author has a version which works in the desktop. Send your original disk
  9976. and a S.A.E. to 11 Maryland, Barkham, Wokingham, Berkshire RG11 4PB and
  9977. you can have an upgrade to the newer version.
  9978. 2.11
  9979. •   Last line in program  − To find the last line in a BASIC program
  9980. which is in memory, hold down <ctrl>+<shift> and then press <escape>
  9981. twice.
  9982. 2.11
  9983. •   Hearsay Problems − It is still possible to select a route from the
  9984. screen when in a scrolling terminal, but it must be a ‘long’ click. A
  9985. short click tries to home the cursor to where the pointer is by sending
  9986. a string of control codes. The answer is to hold the button down a bit
  9987. longer or use the keyboard.
  9988. 2.11
  9989. If you have problems with Xmodem make sure that Vasscomm is turned off.
  9990. 2.11
  9991. •   Filer_OpenDir − When using Filer_OpenDir, it is important to get the
  9992. full pathname correct. For instance, if your hard disc has the name
  9993. ‘Fred’ and you want to open the directory $.Foo, you should use:
  9994. 2.11
  9995. *Filer_OpenDir adfs::Fred.$.Foo
  9996. 2.11
  9997. and not something like:
  9998. 2.11
  9999. *File_OpenDir adfs::4.Foo
  10000. 2.11
  10001. The reason is that when you click on the drive icon, the Filer checks
  10002. the list of open windows to see if the requested pathname is already
  10003. visible. Unfortunately it is not too intelligent about this, and if the
  10004. names do not match exactly, the Filer will open another window. This
  10005. will have the side effect that when Dismount is used only windows with
  10006. the first pathname will be closed.
  10007. 2.11
  10008. •   Legal Text Scaling for Multisyncs − Richard Averill’s hint last
  10009. month (Archive 2.10 pp 19/20) to help rescale text in multisync modes
  10010. could be done more legally using:
  10011. 2.11
  10012. VDU 23,17,7,flags,x;y;0,0
  10013. 2.11
  10014. flags => bit 0 = not implemented
  10015. 2.11
  10016. bit 1 = 1 => set size of VDU 5 characters
  10017. 2.11
  10018. bit 2 = 1 => set size of VDU 5 spacing
  10019. 2.11
  10020.  10 REM > CharSize    Demonstration
  10021. 2.11
  10022.  of changing character size
  10023. 2.11
  10024.  20 REM By Martin Simmons 10/07/89
  10025. 2.11
  10026.  30
  10027. 2.11
  10028.  40 MODE 12
  10029. 2.11
  10030.  50
  10031. 2.11
  10032.  60 VDU 5:CLS:PRINT‘’
  10033. 2.11
  10034.  70 GCOL 1
  10035. 2.11
  10036.  80 PROCprint(8,16,“Double height”)
  10037. 2.11
  10038.  90 PRINT
  10039. 2.11
  10040. 100 GCOL 2
  10041. 2.11
  10042. 110 PROCprint(16,8,“Double width”)
  10043. 2.11
  10044. 120 PRINT
  10045. 2.11
  10046. 130 GCOL 3
  10047. 2.11
  10048. 140 PROCprint(16,16,“Double size”)
  10049. 2.11
  10050. 150 PRINT
  10051. 2.11
  10052. 160 GCOL 5
  10053. 2.11
  10054. 170 PROCprint2(8,8,16,16,“Double
  10055. 2.11
  10056.  spaced“)
  10057. 2.11
  10058. 180 GCOL 7
  10059. 2.11
  10060. 190 PROCprint(8,4,“Mangled half
  10061. 2.11
  10062.  height“)
  10063. 2.11
  10064. 200 PRINT‘’
  10065. 2.11
  10066. 210 GCOL 6
  10067. 2.11
  10068. 220 PROCprint(120,120,“BIG”)
  10069. 2.11
  10070. 230 VDU 4
  10071. 2.11
  10072. 240 END
  10073. 2.11
  10074. 250
  10075. 2.11
  10076. 260 DEF PROCprint(X%,Y%,text$)
  10077. 2.11
  10078. 270 VDU 23,17,7,6,X%;Y%;0,0
  10079. 2.11
  10080. 280 PRINT text$
  10081. 2.11
  10082. 290 ENDPROC
  10083. 2.11
  10084. 300
  10085. 2.11
  10086. 310 DEF PROCprint2(X%,Y%,sx%,sy%
  10087. 2.11
  10088. ,text$)
  10089. 2.11
  10090. 320 VDU 23,17,7,2,X%;Y%;0,0
  10091. 2.11
  10092. 330 VDU 23,17,7,4,sx%;sy%;0,0
  10093. 2.11
  10094. 340 PRINT text$
  10095. 2.11
  10096. 350 ENDPROC
  10097. 2.11
  10098.  
  10099. 2.11
  10100. •   ARM assembler T option − Martyn Lovell says that although the
  10101. assembler sees the T option for the LDR mnemonic the same as the !
  10102. option (Archive 2.10 p 9), it is not used in the same way. The ! option
  10103. should be used to force write back with pre-indexed addressing while the
  10104. T option should be used with post-indexed addressing to cause the -TRAN
  10105. pin on the ARM to go low for the duration of the data transfer. This is
  10106. used by an OS in non-user modes to allow the OS to generate a user-mode
  10107. address.
  10108. 2.11
  10109. •   ALTernative keys − The RISC-OS Inter-nationalKeyboard module
  10110. provides the facility for typing control characters by holding down
  10111. <alt> and typing the number on the numeric keypad. In addition, the
  10112. following keys produce symbols when pressed with <alt> held down:
  10113. 2.11
  10114. 1 gives 1   2 gives 2   3 gives 3   ~ gives Â
  10115. 2.11
  10116. 9 gives ±   0 gives û   , gives x    . gives Ö
  10117. 2.11
  10118. R gives ¨   Y gives ´   S gives ¤   Z gives Ç
  10119. 2.11
  10120. X gives È   C gives ¢   M gives µ  
  10121. 2.11
  10122. shifted C gives ©
  10123. 2.11
  10124. Other keys return nothing. The old Arthur effect of using
  10125. <ctrl><shift><alt> to add 128 to the code can be produced by RMKILLing
  10126. this module. Doing this will also allow the use of <alt> plus a cursor
  10127. key in the BASIC Editor which does not work with this module installed.
  10128. 2.11
  10129. •   Colour cursor for the BASIC Editor − Here is a little program which
  10130. will alter the ArmBE module so that you can change the colour of the
  10131. cursor.
  10132. 2.11
  10133.  10 REM > ColourEdit Make a colour
  10134. 2.11
  10135.  cursor for the BASIC Editor
  10136. 2.11
  10137.  20 REM By Martin Simmons 11/07/89
  10138. 2.11
  10139.  30 REM I use yellow background,
  10140. 2.11
  10141.  blue foreground, red cursor
  10142. 2.11
  10143.  (1=6 EOR 7)
  10144. 2.11
  10145.  40
  10146. 2.11
  10147.  50 colour%=6  :REM **** CHANGE
  10148. 2.11
  10149.  THIS LINE TO CHANGE THE
  10150. 2.11
  10151.  COLOUR (EOR 7) ****
  10152. 2.11
  10153.  60 DIM buf% &10000
  10154. 2.11
  10155.  70 OSCLI “Load :App2.Modules.
  10156. 2.11
  10157. BasicEdit “+STR$~buf%
  10158. 2.11
  10159.  80 P%=buf%+&81E4
  10160. 2.11
  10161.  90 [ SWI  &100+colour%   ;Change
  10162. 2.11
  10163.  background palette
  10164. 2.11
  10165. 100 ]
  10166. 2.11
  10167. 110 zi%=buf%+&8320:zi%+=8+4*
  10168. 2.11
  10169. ((!zi%<<8)>>8)
  10170. 2.11
  10171. 120 wind%=buf%+&8310:wind%+=8+4*
  10172. 2.11
  10173. ((!wind%<<8)>>8)
  10174. 2.11
  10175. 130 P%=buf%+&8310
  10176. 2.11
  10177. 140 [ SWI  “OS_WriteS”
  10178. 2.11
  10179. 150   EQUB 17 : EQUB 128+colour%
  10180. 2.11
  10181.     ;Set background colour
  10182. 2.11
  10183. 160   EQUB 12  ;Clear screen
  10184. 2.11
  10185. 170   EQUB 23 : EQUB 16 : EQUB 1   
  10186. 2.11
  10187. ;Set cursor movement
  10188. 2.11
  10189. 180   EQUS STRING$(4-(P% AND 3)
  10190. 2.11
  10191. ,CHR$0)
  10192. 2.11
  10193. 190   BL zi%
  10194. 2.11
  10195. 200   BL wind%
  10196. 2.11
  10197. 210 ]
  10198. 2.11
  10199. 220 INPUT‘“Enter new file name for
  10200. 2.11
  10201.  the editor: “file$
  10202. 2.11
  10203. 230 OSCLI “Save ”+file$+“ ”+STR$
  10204. 2.11
  10205. ~buf%+“ +94B4”
  10206. 2.11
  10207. 240 OSCLI “SetType ”+file$+“ FFA”
  10208. 2.11
  10209.  
  10210. 2.11
  10211. •   Wild card copy for RISC-OS − The destination parameter of the *Copy
  10212. command now has greater freedom regarding wild cards i.e. wildcards in
  10213. the destination can be used even though they were not used for the
  10214. source
  10215. 2.11
  10216.  e.g. *COPY :0.Text :1.* is now valid.
  10217. 2.11
  10218. •   RISC-OS disc names − It is possible to set a system variable which
  10219. will behave like a disc name. If you *Set <discname>$Path <filepath> you
  10220. can then access you files by :<discname>.<filename>. For example:
  10221. 2.11
  10222. *Set W App1:$.
  10223. 2.11
  10224. *Run W:!Edit
  10225. 2.11
  10226. You can even define several paths, just like File$Path and Run$Path:
  10227. 2.11
  10228. *Set W App1:$.,App2:$.
  10229. 2.11
  10230. *RMLoad W:Modules.BasicEdit
  10231. 2.11
  10232. *Run W:!Edit
  10233. 2.11
  10234. •   Memory Usage − Gerald Fitton − Of course, the ‘best’ machine has
  10235. both hard disc and 4Mb of memory, but some hard disc machines have less
  10236. memory. If you have the ‘best’ then you will probably put all the
  10237. !(application) directories that you use in your root ($) directory for
  10238. instant access. When you click on the :4 icon in the icon bar, all your
  10239. application !Boot files will be RUN and memory will be allocated to each
  10240. application (so that it is instantly available). This is true even when
  10241. the applications are not installed on the icon bar. If you have less
  10242. memory, say 1Mb, then you may find that your dormant applications are
  10243. using up too much memory for some of the more sophisticated appli
  10244. cations. The solution is to put your applications not in the root
  10245. directory but in a (non-!) sub-directory. For example, !Patience can be
  10246. put together with !Zarch in a games directory, where Games is in the
  10247. root directory. This way, only when you open the Games directory (by
  10248. double clicking on it) will you use up memory on the dormant appli
  10249. cations !Patience and !Zarch.
  10250. 2.11
  10251. •   1st Mail solution − When using 1st Mail in RISC-OS, the printer
  10252. options are hidden underneath another window. Mr Burrows has solved the
  10253. problem by altering the template file:
  10254. 2.11
  10255. *Load $.Resources.1wp.
  10256. 2.11
  10257. 1ml_templa 9000
  10258. 2.11
  10259. !&9AA8=155
  10260. 2.11
  10261. !&9AB0=1023
  10262. 2.11
  10263. *Save $.Resources.1wp.
  10264. 2.11
  10265. 1ml_templa 9000+AEA
  10266. 2.11
  10267. *SetType $.Resources.1wp
  10268. 2.11
  10269. .1ml_templa FFF
  10270. 2.11
  10271. •   RISC-OS Hints and Tips − S C Costin − When using !PrinterDM on the
  10272. Desktop to print a text file, if the printer and Archimedes are set up
  10273. where there are no ignore characters configured, i.e. can be checked as
  10274. follows:
  10275. 2.11
  10276. F12    ;Press function key 12 from desktop
  10277. 2.11
  10278. *status ignore   ;Enter command
  10279. 2.11
  10280. No ignore   ;Returned after entering command
  10281. 2.11
  10282. The problem is that the line feed is suppressed and therefore over-
  10283. printing occurs. This is easily overcome by clicking on the !PrinterDM
  10284. icon on the icon bar, which produces a window, and selecting CR or LF
  10285. conversion.
  10286. 2.11
  10287. A more permanent solution is to edit the file PrData. To do this hold
  10288. shift key while clicking on the application directory !PrinterDM, then
  10289. drag PrData icon over Edit icon on the icon bar and release the mouse
  10290. button. At the end of the printer driver data change line: from 0 to 1
  10291. i.e. change line:
  10292. 2.11
  10293. 0;0/1 1=>convert CR or LF to CR,LF
  10294. 2.11
  10295. to:
  10296. 2.11
  10297. 1;0/1 1=>convert CR or LF to CR,LF
  10298. 2.11
  10299. •   Pipedream conversion to ADFS E type floppy disc by S C Costin
  10300. 2.11
  10301. 1)   Format new disc using the new E format.
  10302. 2.11
  10303. 2)   Name the new disc NewPd.
  10304. 2.11
  10305. 3)   Backup your original copy to the disc NewPd, using *COPY to retain
  10306. E format.
  10307. 2.11
  10308. 4)   Copy the !PipeDream application from the support disc to the root
  10309. directory of disc NewPd.
  10310. 2.11
  10311. 5)   Copy the Floating Point Emulator module from directory
  10312. !System.Modules on Application Disc 1 into directory $.!PipeDream on
  10313. disc NewPd.
  10314. 2.11
  10315. 6)   Delete $.!boot
  10316. 2.11
  10317. 7)   Delete $.piped.fpe2
  10318. 2.11
  10319. 8)   Delete $.rs423drive
  10320. 2.11
  10321. 9)   Add the following obey file called $.!boot
  10322. 2.11
  10323. | > $.!boot
  10324. 2.11
  10325. *quit
  10326. 2.11
  10327. RUN $.!pipedream.!run
  10328. 2.11
  10329. 10)   Leave the !PipeDream.!boot file as copied from the support disc.
  10330. 2.11
  10331. | > !PipeDream.!Boot
  10332. 2.11
  10333. Set PipeDream$Dir <Obey$Dir>
  10334. 2.11
  10335. Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
  10336. 2.11
  10337. Set File$Type_DDE PDream
  10338. 2.11
  10339. IconSprites <PipeDream$Dir>
  10340. 2.11
  10341. .!Sprites
  10342. 2.11
  10343. 11)   If mouse cursor control is required insert lines 7 & 8 in the !Run
  10344. Obey file as follows:
  10345. 2.11
  10346. | > !PipeDream.!Run
  10347. 2.11
  10348. Set PipeDream$Dir <Obey$Dir>
  10349. 2.11
  10350. WimpSlot -min 450k
  10351. 2.11
  10352. ||RMReInit InternationalKeyboard
  10353. 2.11
  10354. RMKill InternationalKeyboard
  10355. 2.11
  10356. RMEnsure FPEmulator 2.60
  10357. 2.11
  10358. RMLoad <Obey$Dir>.FPEmulator
  10359. 2.11
  10360. $.piped.cursorrm
  10361. 2.11
  10362. mousecursor on 13 &c5 131
  10363. 2.11
  10364. Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
  10365. 2.11
  10366. Set File$Type_DDE PDream
  10367. 2.11
  10368. IconSprites <PipeDream$Dir>
  10369. 2.11
  10370. .!Sprites
  10371. 2.11
  10372. Load $.Library.pd 8000
  10373. 2.11
  10374. Echo <26>
  10375. 2.11
  10376. Pointer 0
  10377. 2.11
  10378. Go 8000 ; %*0
  10379. 2.11
  10380. •   Update for Artisan and ProArtisan − Clares have now produced an
  10381. application which will up-date your Artisan and ProArtisan discs for
  10382. RISC-OS. It has been put on both this month’s and last month’s program
  10383. discs. Many thanks to Duncan Burbridge, Kimba, Australia (age 12) who
  10384. also sent us information on updating Artisan for RISC-OS.
  10385. 2.11
  10386. •   Not enough screen memory? − If a program expects to run in a
  10387. specific screen mode and not enough screen memory is available, it will
  10388. usually report a ‘Bad Mode’ error when run from the desktop, as the
  10389. screen memory can’t be expanded dynamically once the application has
  10390. started. This can be fixed by either dragging the screen memory bar in
  10391. the task window, or by entering the appro-priate mode first.  A much
  10392. more elegant way is to add the following line to the Obey file that
  10393. starts the program:  Echo <22><n>  Where <n> is the mode. This ensures
  10394. that the screen memory is allocated before the application starts and
  10395. should appear before the *WimpSlot command.
  10396. 2.11
  10397. •   Uncluttered cataloging − RISC-OS has a neat way of searching a disc
  10398. without cluttering the screen. Use <adjust> to open a directory and it
  10399. closes the one you were in, leaving only the new dir-ectory on the
  10400. screen. To move back up the tree, click <adjust> on the close icon, and
  10401. the next directory up will appear, closing the current directory (unless
  10402. you are in the root directory, of course!).
  10403. 2.11
  10404. •   Bye bye hard disk! − The RAM disc is fantastic but not much use on 1
  10405. Mbyte machines. Also, note that when RAMFS is selected *bye does not
  10406. park the head of the Winchester − so beware!!!
  10407. 2.11
  10408.  
  10409. •   Archive Bulletin Board − This month’s password is “ARCAM” − which is
  10410. apparently the name of Alan Glover’s hi-fi system!
  10411. 2.12
  10412. •   Arthur 1.2 desktop − Nick Furniss has converted the Arthur 1.2
  10413. desktop so that it works under RISC-OS. If you are interested, you
  10414. should contact him at 87 Moordale Avenue, Bracknell, RG12 1TG.
  10415. 2.12
  10416. •   Datachat Modem connections − These connect-ions were sent in by P
  10417. Carlson who is happily using the Datachat to connect to Prestel.
  10418. 2.12
  10419.    Archimedes   Datachat
  10420. 2.12
  10421.    2   5
  10422. 2.12
  10423.    3   1
  10424. 2.12
  10425.    5   3
  10426. 2.12
  10427. Pins 2 & 3 on the Datachat are linked together and pins 1, 6 and 8 are
  10428. linked on the Archimedes.
  10429. 2.12
  10430. •   First Word Plus − Volker Eloesser of West Germany, in response to
  10431. Help needed 2.11, p.15, concerning First Word Plus:
  10432. 2.12
  10433. 1) This sounds as if the printer is configured to a shorter paper length
  10434. than the computer. If the computer sends a page which is one line longer
  10435. than the configured length, the printer will feed the next full page
  10436. after receiving a form-feed command. If the reconfiguration of the
  10437. printer does not work, change the FormFeed command in the printer driver
  10438. (HEX-file) to a no-operation code, such as ‘00’ or ‘*’ and compile a new
  10439. CFG-file.
  10440. 2.12
  10441. 2) Simply close the window by clicking on the close-symbol on the top-
  10442. left corner of the text window before printing.
  10443. 2.12
  10444. •   First Word Plus word-count − The word count in First Word Plus does
  10445. not work properly! It counts a word which contains an apostrophe as two
  10446. words e.g. I’m or it’s. This was very embarrassing for one Archive
  10447. reader, who insisted to his publisher, that he had written a certain
  10448. number of words.
  10449. 2.12
  10450. •   Graphic Writer bug − If you insert a block marker at the end of a
  10451. document, it is possible to scroll past the ‘End’ point. This is usually
  10452. remedied by scrolling back but if you continue editing it is possible to
  10453. crash the application by pressing <ctrl><down arrow> followed by <page
  10454. down> or <page up>. So be careful.
  10455. 2.12
  10456. •   Home Accounts − Just a quick comment on Alan Highet’s Home Accounts
  10457. review in 2.10 − one of his criticisms is that the reporting is limited
  10458. to a whole year’s transactions thus possibly taking up lots of paper;
  10459. whilst this is true, report output can, under RISC-OS, be dragged
  10460. directly into !EDIT and then you can print bits needed.  Not ideal, but
  10461. a solution.
  10462. 2.12
  10463. Also he says that transactions are deleted after a year − this is not
  10464. completely true − only the last 12 months transactions can be graphed
  10465. and edited, but all transactions are kept for viewing in the account/
  10466. header windows. Brian Debenham
  10467. 2.12
  10468. •   Prolog X − We have a hint & tip on “Retaining facts, rules and lists
  10469. produced in Prolog X” written by C.G.Williamson. It was fairly long and
  10470. rather technical, so we did not print it. If anyone would like a copy of
  10471. this, please send an SAE to Adrian Look at the Archive office. (We have
  10472. just received a letter from Jim Davis who says that he would like to
  10473. commend Chris for his “brilliantly simple use of the Prolog built-in
  10474. predicates ‘tell’ and ‘told’.” He quotes several learned texts and says
  10475. that they all miss Chris’ simple combination of ‘tell’, ‘listing(X,Y)’,
  10476. ‘told’ as a method of avoiding the very contrived, but hitherto common,
  10477. use of ‘tell’ and ‘told’. He believes that Chris’ expedient will become
  10478. standard.) Should we therefore publish Chris’ comments? Are there many
  10479. Prolog users out there? Ed.)
  10480. 2.12
  10481. •   QL Reader − Brian Oliver points out that there is a problem with
  10482. QLreader (Shareware 12) in its drive select. Otherwise it is excellent
  10483. and it now works fine with my 5.25“ drive connected to slot :2 after the
  10484. following modification. The SYS ”ADFS_DiscOp“ command on line 2750 is
  10485. wrong. It should be:-
  10486. 2.12
  10487. SYS “XADFS_DiscOp”,,(1+List%<<6),
  10488. 2.12
  10489. Start%+(drive%<<29),bf%,512 TO flags%
  10490. 2.12
  10491. It is then necessary to set the default drive on line 240 and those for
  10492. selection on lines 19740 & 1950.
  10493. 2.12
  10494. •   RS423 Archimedes to Beeb − J.O.Linton: I have been having trouble
  10495. with my RS423 port. My Beeb would listen to my Archimedes but my
  10496. Archimedes would not receive data correctly from my Beeb. I have a
  10497. fairly early Archimedes so I went to some trouble to get the field
  10498. modification done to the serial chip only to find that the fault was
  10499. exactly as before. Then my dealer sent me a leaflet from Acorn (Part No.
  10500. 0476.033) called ‘Using the serial port’ in which I found this vital
  10501. paragraph:
  10502. 2.12
  10503. ‘The Acorn BBC model B uses one stop bit by default, whereas the default
  10504. configuration of an Archimedes computer is two stop bits. You are
  10505. advised to change the DATA configuration of your Archimedes computer to
  10506. 5 if you are using your serial port to pass data to or from a BBC model
  10507. B.’
  10508. 2.12
  10509. *Configure DATA 5 and Hey Presto − it worked!
  10510. 2.12
  10511. •   Systemdevs − When using the System Devices to send characters to the
  10512. printer, the printer ignore character feature is not ‘used’, and all
  10513. characters are sent to the printer − including the printer ignore
  10514. character. This is very useful for sending an alternative character set
  10515. to the printer (if it has a user-defined graphics option) as no
  10516. characters will be ‘stripped’ − rather like using VDU 1,char with the
  10517. VDU drivers. All that needs to be done is give a command similar to:
  10518. *COPY UserChars printer: ~C~V. Michael Ben-Gershon
  10519. 2.12
  10520. •   Teletext Adaptors − Richard House has written some software which
  10521. allows the Archimedes to “grab” teletext pages using the Acorn Teletext
  10522. adaptor. If any one is interested, we can put you in touch with him.
  10523. 2.12
  10524. Herman Stevens from Belgium, says that in order to get the Morley
  10525. teletext adaptor to work with RISC-OS, you require: I/O podule, Soft’s
  10526. “Support” and “ATS” saved on ADFS disc, !65Host copied on the same disc
  10527. and !boot file as follows:
  10528. 2.12
  10529. CLS
  10530. 2.12
  10531. *DIR !65Host
  10532. 2.12
  10533. *RMLoad !RunImage
  10534. 2.12
  10535. *CACHEROM 1 ADFS
  10536. 2.12
  10537. *CACHEROM 3 SUPPORT
  10538. 2.12
  10539. *CACHEROM 4 ATS
  10540. 2.12
  10541. *EMU.
  10542. 2.12
  10543. By typing “TTEXT” you can start the Support ROM and TELETEXT will start
  10544. the ATS ROM.
  10545. 2.12
  10546. •   Taxan Multisync wobbles − The hint last month was expressed in
  10547. rather too technical language. I’ll try again.
  10548. 2.12
  10549. Look at the p.c.b. from the front of the computer and near the serial
  10550. port socket you will see a couple of metal pins sticking up and on the
  10551. board alongside it, the inscription “LK2”. Then over to the left of
  10552. that, about in line with the headphone socket is a set of five pairs of
  10553. pins inscribed as “PL2”. It should have a couple of black plastic/metal
  10554. sleeves on it. These are spare metal shorting links. Slide one of these
  10555. links off (upwards) and put it instead on LK2. That should do the trick.
  10556. 2.12
  10557. •   Compressing Text with OS_PrettyPrint − Under RISC-OS, the
  10558. ‘OS_PrettyPrint’ SWI (c.f. Archive 2.9 p9) has been extended to include
  10559. a ‘dictionary’ facility. When an ASCII <27> code is encountered, the
  10560. next byte will be used to find (and print) a dictionary entry. For
  10561. example:
  10562. 2.12
  10563. Consider the following dictionary:
  10564. 2.12
  10565. 1)   Hello
  10566. 2.12
  10567. 2)   this
  10568. 2.12
  10569. 3)   is
  10570. 2.12
  10571. 4)   Archie
  10572. 2.12
  10573. If you send the codes <27><4> to the OS_Pretty Print SWI, tthe text
  10574. ‘Archie’ will be printed.
  10575. 2.12
  10576. The two bytes <27><4> replace the 5 bytes <65> <114><99><104><101> which
  10577. we actually want printed. The operating system uses this feature to
  10578. compress any strings it might need to print.
  10579. 2.12
  10580. The structure of a dictionary is shown below:
  10581. 2.12
  10582. <entry length> }
  10583. 2.12
  10584. <string>       } repeat
  10585. 2.12
  10586. <0>            }
  10587. 2.12
  10588. .
  10589. 2.12
  10590. .
  10591. 2.12
  10592. <0>            ; end of of dictionary
  10593. 2.12
  10594. Therefore to print an OS_PrettyPrint SWI, you must use the following
  10595. entry parameters:
  10596. 2.12
  10597. r0 -> pointer string
  10598. 2.12
  10599. r1 -> pointer dictionary (0 -> system dictionary)
  10600. 2.12
  10601. r2 -> special string (printed if dictionary entry zero is accessed)
  10602. 2.12
  10603.  10 REM >PrettyPrt
  10604. 2.12
  10605.  20
  10606. 2.12
  10607.  30 REM ****************************
  10608. 2.12
  10609.  40 REM * Using the OS_PrettyPrint *
  10610. 2.12
  10611.  50 REM *   Dictionary Facility    *
  10612. 2.12
  10613.  60 REM *  by Adrian Philip Look   *
  10614. 2.12
  10615.  70 REM *    21st August 1989      *
  10616. 2.12
  10617.  80 REM ****************************
  10618. 2.12
  10619.  90
  10620. 2.12
  10621. 100 DIM dictionary% &400:REM allocate
  10622. 2.12
  10623. some space for the dictionary
  10624. 2.12
  10625. 110 DIM buffer% 3 : REM allocate some
  10626. 2.12
  10627.  space for the string
  10628. 2.12
  10629. 120
  10630. 2.12
  10631. 130 PROCsetupdictionary :REM make a
  10632. 2.12
  10633.  user dictionary
  10634. 2.12
  10635. 140
  10636. 2.12
  10637. 150 buffer%?0=27 : REM a dictionary
  10638. 2.12
  10639.  entry follows
  10640. 2.12
  10641. 160 buffer%?2=0  : REM terminate
  10642. 2.12
  10643.  OS_PrettyPrint string
  10644. 2.12
  10645. 170 FOR x%=0 TO 5
  10646. 2.12
  10647. 180   buffer%?1=x% : REM dictionary
  10648. 2.12
  10649.  entry x%
  10650. 2.12
  10651. 190   PRINT’x%;“ : ”;
  10652. 2.12
  10653. 200   SYS “OS_PrettyPrint”,buffer%,
  10654. 2.12
  10655. dictionary%,“<special string>” +CHR$(0)
  10656. 2.12
  10657. 210 NEXT x%
  10658. 2.12
  10659. 220 PRINT‘
  10660. 2.12
  10661. 230 END
  10662. 2.12
  10663. 240
  10664. 2.12
  10665. 250 DEFPROCsetupdictionary
  10666. 2.12
  10667. 260 x%=dictionary%
  10668. 2.12
  10669. 270 READ s$
  10670. 2.12
  10671. 280 WHILE s$<>“***”
  10672. 2.12
  10673. 290   x%?0=LEN(s$)+2:REM entry length
  10674. 2.12
  10675. 300   $(x%+1)=s$+CHR$(0) :REM null
  10676. 2.12
  10677.  terminated string
  10678. 2.12
  10679. 310   x%+=LEN(s$)+2
  10680. 2.12
  10681. 320   READ s$
  10682. 2.12
  10683. 330 ENDWHILE
  10684. 2.12
  10685. 340 ?x%=0 : REM zero length string to
  10686. 2.12
  10687.  terminate dictionary
  10688. 2.12
  10689. 350 ENDPROC
  10690. 2.12
  10691. 360
  10692. 2.12
  10693. 370 DATA Hello,this,is,Archie,“***”
  10694. 2.12
  10695.  
  10696. 2.12
  10697. •   Copy Options − In Archive 2.10 page 15 we said that there were two
  10698. new copy options L and N. In fact there are five new options, the other
  10699. three being:
  10700. 2.12
  10701. A − Force destination access to same as source
  10702. 2.12
  10703. S − Restamp datestamped files after coping
  10704. 2.12
  10705. T − Only copy the directory structure
  10706. 2.12
  10707. •   Filer_OpenDir and Filer_CloseDir (cont’d) − Gary Atkinson says that
  10708. these commands do not use system variables and so the full directory
  10709. name must be used every time. This makes life difficult for RISC-OS
  10710. applications which want to open a Filer window relative to their present
  10711. position on the disc (which may change e.g. hard disc users).
  10712. 2.12
  10713. Therefore, with this context in mind, Gary has sent in the following
  10714. hint which will read the value of a system variable:
  10715. 2.12
  10716. DIM buffer% 255, temp% 255
  10717. 2.12
  10718. SYS “OS_CLI”,“Filer_OpenDir ” + FNread_system_variable(“Obey$Dir”)
  10719. 2.12
  10720. END
  10721. 2.12
  10722. :
  10723. 2.12
  10724. DEFFNread_system_variable(v$)
  10725. 2.12
  10726. LOCAL len%,x%
  10727. 2.12
  10728. $buffer%=v$
  10729. 2.12
  10730. SYS “OS_ReadVarVal”,buffer%,temp%
  10731. 2.12
  10732. ,255,0,3 TO ,,len%
  10733. 2.12
  10734. v$=“”
  10735. 2.12
  10736. FOR x%=0 TO len%-1
  10737. 2.12
  10738. v$+=CHR$(buffer%?x%)
  10739. 2.12
  10740. NEXT x%
  10741. 2.12
  10742. =v$
  10743. 2.12
  10744. •   Mode 16, 17 and 24 co-ordinates − Under RISC-OS modes 16 and 17 now
  10745. support graphics. This means that a resolution of 1056x256 can now be
  10746. obtained on a normal monitor. However, it should be noted that the
  10747. screen size, in OS co-ordinates, is not 1280x1024 (or even 2048x1024 as
  10748. Richard Averill suggested last month) but 2111x1024. In order to convert
  10749. between the two sizes you should use the following function:
  10750. 2.12
  10751. DEFFNconvert2111to1280(x%)
  10752. 2.12
  10753. =INT(33*(x%+0.5)/20)
  10754. 2.12
  10755. •   Modifying !Calc to accept keyboard input − In order to modify the
  10756. calculator on the Applications Disc 2 to accept keyboard input you must:
  10757. 2.12
  10758. 1) Leave the desktop and type *BASIC.
  10759. 2.12
  10760. 2) Mount Applications Disc 2 in drive 0.
  10761. 2.12
  10762. 3) LOAD “!Calc.!RunImage” and make the follow-ing modifications:
  10763. 2.12
  10764.    Add the following lines:
  10765. 2.12
  10766. 315 WHEN 8 : PROCwndkeyprssd(!q%,
  10767. 2.12
  10768. q%!24)
  10769. 2.12
  10770. 750 DEFPROCwndkeyprssd(handle%
  10771. 2.12
  10772. ,key%) : IF key%>47 AND key%<5 THEN PROCdigit(CHR$(key%))
  10773. 2.12
  10774. 751 CASE key% OF
  10775. 2.12
  10776. 752 WHEN 42: PROCoperator(“*”)
  10777. 2.12
  10778. 753 WHEN 43: PROCoperator(“+”)
  10779. 2.12
  10780. 754 WHEN 47: PROCoperator(“/”)
  10781. 2.12
  10782. 755 WHEN 46: PROCpoint
  10783. 2.12
  10784. 756 WHEN 45: PROCoperator(“-”)
  10785. 2.12
  10786. 757 WHEN 95: PROCoperator(“-”)
  10787. 2.12
  10788. 758 WHEN 61: PROCoperator(“=”)
  10789. 2.12
  10790. 759 ENDCASE
  10791. 2.12
  10792.    Now renumber the program (just type RENUMBER <return>), and then
  10793. type:
  10794. 2.12
  10795. 855 PROCupdate(calc%,12,-28-32,10
  10796. 2.12
  10797. *16+12,24):PROCcalc:ENDPROC
  10798. 2.12
  10799. 105 q%!60=15<<12
  10800. 2.12
  10801. 4) SAVE “!Calc.!RunImage”
  10802. 2.12
  10803.    To use text with the modified calculator just click in the calculator
  10804. window (not on an icon) and type away. Note that a caret will not
  10805. appear.
  10806. 2.12
  10807. •   New CMOS RAM settings for outline fonts − When using the outline
  10808. font manager (which is supplied with the Acorn DTP) you can set various
  10809. font cache thresholds. These thresholds govern which mode of caching is
  10810. used i.e. vertical & horizontal subpixeled, cached outlines, anti-
  10811. aliased outlines, non-exact font from x90y45, and ‘auto-grow’ cache.
  10812. 2.12
  10813. The various thresholds can be set up as follows:
  10814. 2.12
  10815. *Configure FontSize <n>k ; min size of cache
  10816. 2.12
  10817. *Configure FontMax  <n>k ; max size of ‘auto-grow’ cache
  10818. 2.12
  10819. *Configure FontMax1 <h>  ; max size of non-exact font x90y45
  10820. 2.12
  10821. *Configure FontMax2 <h>  ; max size of anti-aliased outlines
  10822. 2.12
  10823. *Configure FontMax3 <h>  ; max size of cached outlines
  10824. 2.12
  10825. *Configure FontMax4 <w>  ; max size of horizontally-subpixeled font
  10826. 2.12
  10827. *Configure FontMax5 <h>  ; max size of vertically-subpixeled font
  10828. 2.12
  10829. where <h> refers to maximum font pixel height (pixel height = point
  10830. height * dpi / 72), and <w> to the maximum font pixel width.
  10831. 2.12
  10832. Some programs may corrupt the CMOS RAM and soil the font cache
  10833. thresholds. This may dramatically reduce the efficiency of cached fonts.
  10834. Use the *STATUS command to view your currents threshold settings (and
  10835. make a note of them just in case the CMOS RAM gets corrupted).
  10836. 2.12
  10837. •   New FPE − There is a new version of the floating pointer emulator
  10838. provided on the Applications Disc 2. If any of your programs use older
  10839. versions of the FPE, you should update the module. This is because the
  10840. pre 2.60 release versions of the FPE have a bug (a badly formed module
  10841. header) which happens to work under Arthur 1.2.
  10842. 2.12
  10843. •   New system variable − There is a new system variable, called
  10844. Font$Path, which tells the Archimedes where anti-aliased fonts can be
  10845. found. It has the same syntax as Load$Path and Run$Path. This means that
  10846. fonts can be accessed from several different directories e.g. *Set
  10847. Font$Path $.Fonts1, $.Fonts2,$.Fonts3 will allow the fonts manager to
  10848. access anti-aliased fonts from three directories $.Font1, $.Font2 and
  10849. $.Font3. To remain compatible with the earlier versions of the font
  10850. manager you can *Set Font$Path <Font$Prefix>.
  10851. 2.12
  10852. •   OS_ChangedBox − RISC-OS now offers a facility which will keep track
  10853. of the areas on the ‘screen’ which have been altered by calls to the VDU
  10854. drivers. When enabled, this feature will pro-vide a rectangle (co-
  10855. ordinates in pixels from the bottom left-hand corner) of the area on the
  10856. ‘screen’ which has been changed. The parameters are:
  10857. 2.12
  10858. Entry:
  10859. 2.12
  10860. R0 = 0  -> disable changed box calculations
  10861. 2.12
  10862.    = 1  -> enable changed box calculations
  10863. 2.12
  10864.    = 2  -> reset changed box to null rectangle
  10865. 2.12
  10866.    = -1 -> read changed box info
  10867. 2.12
  10868. Exit:
  10869. 2.12
  10870. R0 = old enable state
  10871. 2.12
  10872. R1 points to a fixed block of 5 words
  10873. 2.12
  10874.    [R1, #0]  = disable/enable flag
  10875. 2.12
  10876.    [R1, #4]  = x-coordinate of left edge of box
  10877. 2.12
  10878.    [R1, #8]  = y-coordinate of bottom edge of box
  10879. 2.12
  10880.    [R1, #12] = x-coordinate of right edge of box
  10881. 2.12
  10882.    [R1, #16] = y-coordinate of top edge of box
  10883. 2.12
  10884. An example program:
  10885. 2.12
  10886.  10 REM >Changed
  10887. 2.12
  10888.  20
  10889. 2.12
  10890.  30 REM *************************
  10891. 2.12
  10892.  40 REM *  Using OS_ChangedBox  *
  10893. 2.12
  10894.  50 REM * by Adrian Philip Look *
  10895. 2.12
  10896.  60 REM *   22nd August 1989    *
  10897. 2.12
  10898.  70 REM *************************
  10899. 2.12
  10900.  80
  10901. 2.12
  10902.  90 MODE 12 : OFF
  10903. 2.12
  10904. 100
  10905. 2.12
  10906. 110 PROCenablecalulations
  10907. 2.12
  10908. 120 PROCresetrectangle
  10909. 2.12
  10910. 130
  10911. 2.12
  10912. 140 LINE 400,400,600,600
  10913. 2.12
  10914. 150 PROCreadbox
  10915. 2.12
  10916. 160 RECTANGLE FILL 300,300,10,10
  10917. 2.12
  10918. 170 PROCreadbox
  10919. 2.12
  10920. 180 RECTANGLE FILL 700,700,30,30
  10921. 2.12
  10922. 190 PROCreadbox
  10923. 2.12
  10924. 200 CIRCLE 250,250,200
  10925. 2.12
  10926. 210 PROCreadbox
  10927. 2.12
  10928. 220 RECTANGLE 550,450,500,300
  10929. 2.12
  10930. 230 PROCreadbox
  10931. 2.12
  10932. 240
  10933. 2.12
  10934. 250 PROCdisablecalulations : ON
  10935. 2.12
  10936. 260 PRINT
  10937. 2.12
  10938. 270 END
  10939. 2.12
  10940. 280
  10941. 2.12
  10942. 290 DEFPROCresetrectangle
  10943. 2.12
  10944. 300 SYS “OS_ChangedBox”,2
  10945. 2.12
  10946. 310 ENDPROC
  10947. 2.12
  10948. 320
  10949. 2.12
  10950. 330 DEFPROCenablecalulations
  10951. 2.12
  10952. 340 SYS “OS_ChangedBox”,1
  10953. 2.12
  10954. 350 ENDPROC
  10955. 2.12
  10956. 360
  10957. 2.12
  10958. 370 DEFPROCdisablecalulations
  10959. 2.12
  10960. 380 SYS “OS_ChangedBox”,0
  10961. 2.12
  10962. 390 ENDPROC
  10963. 2.12
  10964. 400
  10965. 2.12
  10966. 410 DEFPROCreadbox
  10967. 2.12
  10968. 420 PROCdisablecalulations
  10969. 2.12
  10970. 430 SYS “OS_ChangedBox”,-1 TO ,data%
  10971. 2.12
  10972. 440 x0%=data%!4: y0%=data%!8
  10973. 2.12
  10974. 450 x1%=data%!12 : y1%=data%!16
  10975. 2.12
  10976. 460
  10977. 2.12
  10978. 470 PRINTTAB(0,0);“Changed Box
  10979. 2.12
  10980. Rectangle (in pixels not
  10981. 2.12
  10982.  OS coords)“
  10983. 2.12
  10984. 480 PRINT“left x:   ”;x0%;“     ”
  10985. 2.12
  10986. 490 PRINT“bottom y: ”;y0%;“     ”
  10987. 2.12
  10988. 500 PRINT“right x:  ”;x1%;“     ”
  10989. 2.12
  10990. 510 PRINT“top y:    ”;y1%;“     ”
  10991. 2.12
  10992. 520
  10993. 2.12
  10994. 530 PRINT‘“press any key to step
  10995. 2.12
  10996. through demo“
  10997. 2.12
  10998. 540 QQ=GET
  10999. 2.12
  11000. 550 PROCenablecalulations
  11001. 2.12
  11002. 560 ENDPROC
  11003. 2.12
  11004. •   ProArtisan & Artisan upgrades to RISC-OS − ProArtisan discs need to
  11005. be changed so that they work under RISC-OS. This upgrade avoids the
  11006. dreaded “Filecore in use” error, and is available from Clares Micros if
  11007. you send them a blank D-formatted disc.
  11008. 2.12
  11009. •   RISC-OS printer drivers and Line Feeds − If your printer does not
  11010. automatically generate line feeds when it receives a carriage return you
  11011. can make the RISC printer drivers generate one for you. Once the printer
  11012. drive is installed on you must click on the printer icon with the SELECT
  11013. button. This will reveal a window which contains an option to convert
  11014. single line feeds or carriage returns into a single line feed and
  11015. carriage return i.e. CR or LF => CR,LF.
  11016. 2.12
  11017. If you wish to make this option permanent just select the ‘Save Choices’
  11018. option on the printer driver menu.
  11019. 2.12
  11020. •   RISC-OS will run old WIMP programs (i.e. it emulates the Arthur 1.2
  11021. Window Manager) but because the emulation is not complete there are some
  11022. anomalies with the sprite handling. (a) selected sprites are rendered
  11023. incorrectly (b) sprite are scaled according to the screen mode (this did
  11024. not happen before). In practice, however, this affects very few
  11025. applications.
  11026. 2.12
  11027. •   The *CDIR command for the ADFS, RAMFS, and NETFS now creates
  11028. unlocked directories. This means that directories can be renamed, moved
  11029. and deleted from the desktop. However, the contents of a directory must
  11030. be deleted before the directory itself can be deleted.
  11031. 2.12
  11032. •   The Window Manager (RISC-OS) no longer reserves 32k permanent memory
  11033. for window definitions, etc but acquires memory from the RMA as it is
  11034. needed. This means that some Arthur 1.2 wimp programs may fail to start,
  11035. giving a ‘No room to create window’ error. This can usually be solved by
  11036. increasing the memory allocated to the RMA (by dragging the RMA bar in
  11037. the Task Manager) before starting the application.
  11038. 2.12
  11039. The following hints and tips were sent in by Paul Witheridge
  11040. 2.12
  11041. •   Cancelling tasks from the “Task Display” − If you call up the Task
  11042. Display by clicking the mouse menu button on the Task Manager Icon at
  11043. the right-hand end of the icon bar and then selecting Task Display from
  11044. the resulting menu, you will get, among other things, a one line display
  11045. for each active task, showing the name of the task and how much memory
  11046. it uses.
  11047. 2.12
  11048. If you position the pointer on that display line and click menu again,
  11049. you will see a very similar menu, but this time there is a menu item for
  11050. the task in question. This menu item has a sub-menu arrow. If you move
  11051. the pointer onto it, you will be rewarded with a sub-menu with a just a
  11052. single item, “Quit”. Clicking on this will usually, but not always,
  11053. cause the task to terminate.
  11054. 2.12
  11055. From the programmer’s point of view, the next time the task in question
  11056. issues a Wimp_Poll request, it will receive a reason code 18 with a
  11057. subordinate code of 8 in the fifth word of the parameter block. It
  11058. should interpret this as a directive to terminate.
  11059. 2.12
  11060. •   Command files from within an Obey file − One of the main differences
  11061. between Command files and Obey files is that input from a Command file
  11062. can be passed to the OS Command Line Interpreter or to an application,
  11063. while input from an Obey file is only passed to the Command Line
  11064. Interpreter. This means that when an application program is started up
  11065. by a RUN command in an Obey file, the following line of the Obey file
  11066. will always be treated as a command and never as input to the appli
  11067. cation program. For example if the following is an Obey file:
  11068. 2.12
  11069. Dir ADFS:$.BasPgms
  11070. 2.12
  11071. BASIC
  11072. 2.12
  11073. Dir ADFS:$
  11074. 2.12
  11075. Then the second DIR command will be executed after quitting from BASIC.
  11076. If, instead, the file is a Command file, then as soon as BASIC starts up
  11077. it will read the “Dir ADFS:$” as input (and since it does not begin with
  11078. an asterisk, it will not understand it and treat it as a mistake).
  11079. 2.12
  11080. You can use a combination of Obey and Command files to start up an
  11081. application program and provide it with an initial set of input data.
  11082. This can be very useful, but to be successful, you must know a little
  11083. more about what happens when a Command file is executed from within an
  11084. Obey file. Consider the following example:
  11085. 2.12
  11086. | > ObeyFile
  11087. 2.12
  11088. Echo Output 1 from ObeyFile
  11089. 2.12
  11090. Exec CmndFile
  11091. 2.12
  11092. Echo Output 2 from ObeyFile
  11093. 2.12
  11094. | > CmndFile
  11095. 2.12
  11096. Echo Output from CmndFile
  11097. 2.12
  11098. When the Obey file is run, the following output is produced:
  11099. 2.12
  11100. Output 1 from ObeyFile
  11101. 2.12
  11102. Output 2 from ObeyFile
  11103. 2.12
  11104. * | > CmndFile
  11105. 2.12
  11106. * Echo Output from CmndFile
  11107. 2.12
  11108. Output from CmndFile
  11109. 2.12
  11110. From this output, you can see that despite the fact that the “Exec
  11111. CmndFile” command came between the two “Echo” commands in the Obey file,
  11112. the contents of the Command file were not actually executed until the
  11113. Obey file was finished with. The Command Line Interpreter obviously
  11114. gives precedence to Obey files over Command files. All that the EXEC
  11115. command did was to open the Command file for input and assign the system
  11116. input stream to it. It did not actually read anything from it. This was
  11117. left to the Command Line Interpreter, but it did not resume reading from
  11118. the system input stream until it had exhausted the Obey file.
  11119. 2.12
  11120. Since application programs can take input from a Command file, but not
  11121. from an Obey file, an EXEC command can be used within an Obey file to
  11122. “stack” input ready for an application program. The following example of
  11123. an Obey file and a Command file can be used to create a RISC-OS
  11124. application for the Basic Editor:
  11125. 2.12
  11126. | > !BasicEdit.!Run
  11127. 2.12
  11128. If “<System$Path>” = “” then Error 0 System resources cannot be found
  11129. RMensure ARMBasicEditor 1.00 RMload System:Modules.BasicEdit
  11130. 2.12
  11131. Key 2 EDIT .|M
  11132. 2.12
  11133. Key 4 *QUIT|M
  11134. 2.12
  11135. Wimpslot -min 100k
  11136. 2.12
  11137. Exec <Obey$Dir>.!Init
  11138. 2.12
  11139. Basic -load %*0
  11140. 2.12
  11141. *| > !BasicEdit.!Init
  11142. 2.12
  11143. EDIT
  11144. 2.12
  11145. Both files should reside in a application directory called “!BasicEdit”.
  11146. An accompanying “!sprites” file would be nice, but is not essential
  11147. since in its absence, RISC-OS will use the default sprite for an
  11148. application.
  11149. 2.12
  11150. The “Exec <Obey$Dir>.!Init” command in the Obey file opens the Command
  11151. file and when the following “Basic -load %*0” command executes, BASIC
  11152. reads the contents of the Command file as if it were being entered from
  11153. the keyboard.
  11154. 2.12
  11155. If you double-click on the icon for “!BasicEdit” in a directory viewer,
  11156. the Basic Editor is started up ready to create a new program. If you
  11157. install “!BasicEdit” on the icon bar using TinyDirs, you can drag the
  11158. icon for a BASIC program from a directory viewer to the “!BasicEdit”
  11159. icon on the icon bar, which will start up the Basic Editor and load the
  11160. program into it ready to edit.
  11161. 2.12
  11162. The following example consists of an Obey file and a Command file to
  11163. start up Twin as an application and to change the default colours used
  11164. by twin from white on black to blue on cyan. The contents of the Obey
  11165. file, which is the !Run file in the !Twin application directory, are:
  11166. 2.12
  11167. | > !Twin.!Run
  11168. 2.12
  11169. WimpSlot -min 100k
  11170. 2.12
  11171. Load ADFS:%%.Twin 8000
  11172. 2.12
  11173. Exec <Obey$Dir>.!Init
  11174. 2.12
  11175. Go 8000 ; %*0
  11176. 2.12
  11177. and the contents of the Command file, which is named “!Init” and also
  11178. resides in the !Twin directory, are (in the notation used for *BUILD
  11179. etc):
  11180. 2.12
  11181. |!|A|S|@|F|@|@|@|S|A|D|@|@|@
  11182. 2.12
  11183. The Obey file assumes that Twin resides in the current ADFS library,
  11184. refering to it as “ADFS:%%”. “ADFS” must be specified in case the ADFS
  11185. is not the current filing system and “%%” will be replaced by a single
  11186. percentage sign by the argument substitution process for Obey files.
  11187. Twin is loaded at &8000 because in a RISC-OS multi-tasking environment,
  11188. the amount of storage available to start up TWIN is often not enough to
  11189. load it at its “normal” load address of &80000 (leading to the dreaded
  11190. error message: “No writeable memory at this address”). Note that loading
  11191. Twin at &8000 leaves no memory for starting up applications from within
  11192. Twin. Such applications would normally run at &8000 and utilise the
  11193. memory between &8000 and Twin’s normal load address at &80000).
  11194. 2.12
  11195. The Command file seems to consist of unintelligible hieroglyphics. The
  11196. first character (shown as “|!|A”) is actually &81 and has the same
  11197. effect on Twin as pressing function key one. The remaining eight
  11198. characters (shown as “|S|@|F|@|@|@|S|A|D|@|@|@”) are equivalent to:
  11199. 2.12
  11200.    ctrl-S ctrl-@ ctrl-F ctrl-@ ctrl-@ ctrl-@
  11201. 2.12
  11202.    ctrl-S ctrl-A ctrl-D ctrl-@ ctrl-@ ctrl-@
  11203. 2.12
  11204. which will have the same effect when read by Twin as the BASIC
  11205. statements:
  11206. 2.12
  11207.    VDU 19,0,5,0,0,0
  11208. 2.12
  11209.    VDU 19,1,4,0,0,0
  11210. 2.12
  11211. mapping logical colour zero to physical colour five (cyan) and logical
  11212. colour one to physical colour four (blue).
  11213. 2.12
  11214. As in the case of !BasicEdit, double clicking on the !Twin icon in a
  11215. directory viewer will start up Twin without any file loaded, while
  11216. installing !Twin on the icon bar via TinyDirs will allow dragging file
  11217. icons to the !Twin icon on the icon bar, starting up Twin and loading
  11218. the file.
  11219. 2.12
  11220. •   Error signalling from within a machine code subroutine called from
  11221. BASIC −Under BASIC V version 1.04, it is simple to signal an error
  11222. condition from a machine code subroutine by setting the over-flow flag
  11223. and loading register zero with a pointer to an error block before
  11224. returning to BASIC.
  11225. 2.12
  11226. Consider these two, almost identical examples:
  11227. 2.12
  11228. The first assembles and calls a machine code subroutine that points
  11229. register zero to an error block (see line 70) and then returns to BASIC
  11230. with the overflow flag cleared (see line 80). This program terminates
  11231. normally without an error:
  11232. 2.12
  11233.  10 REM > Example1
  11234. 2.12
  11235.  20
  11236. 2.12
  11237.  30 DIM code% 100
  11238. 2.12
  11239.  40 FOR pass% = 0 TO 3 STEP 3
  11240. 2.12
  11241.  50 P%=code%
  11242. 2.12
  11243.  60 [OPT pass%
  11244. 2.12
  11245.  70 ADR R0,errblk
  11246. 2.12
  11247.  80 BICS PC,R14,#&10000000
  11248. 2.12
  11249.  90 .errblk EQUD 99
  11250. 2.12
  11251. 100 EQUS “I am an error message”
  11252. 2.12
  11253. 110 EQUB 0
  11254. 2.12
  11255. 120 ]:NEXT
  11256. 2.12
  11257. 130 ON ERROR PROCerror
  11258. 2.12
  11259. 140 CALL code%
  11260. 2.12
  11261. 150 END
  11262. 2.12
  11263. 160 :
  11264. 2.12
  11265. 170 DEF PROCerror
  11266. 2.12
  11267. 180 PRINT “Nmbr=”; ERR
  11268. 2.12
  11269. 190 PRINT “Text=”; REPORT$
  11270. 2.12
  11271. 200 PRINT “Line=”; ERL
  11272. 2.12
  11273. 210 END
  11274. 2.12
  11275. 220 ENDPROC
  11276. 2.12
  11277. The second example is exactly the same except that it sets the overflow
  11278. flag (see line 80) before returning to BASIC:
  11279. 2.12
  11280.  10 REM > Example2
  11281. 2.12
  11282.  20
  11283. 2.12
  11284.  30 DIM code% 100
  11285. 2.12
  11286.  40 FOR pass% = 0 TO 3 STEP 3
  11287. 2.12
  11288.  50 P%=code%
  11289. 2.12
  11290.  60 [OPT pass%
  11291. 2.12
  11292.  70 ADR R0,errblk
  11293. 2.12
  11294.  80 ORRS PC,R14,#&10000000
  11295. 2.12
  11296.  90 .errblk EQUD 99
  11297. 2.12
  11298. 100 EQUS “I am an error message”
  11299. 2.12
  11300. 110 EQUB 0
  11301. 2.12
  11302. 120 ]:NEXT
  11303. 2.12
  11304. 130 ON ERROR PROCerror
  11305. 2.12
  11306. 140 CALL code%
  11307. 2.12
  11308. 150 END
  11309. 2.12
  11310. 160 :
  11311. 2.12
  11312. 170 DEF PROCerror
  11313. 2.12
  11314. 180 PRINT “Nmbr=”; ERR
  11315. 2.12
  11316. 190 PRINT “Text=”; REPORT$
  11317. 2.12
  11318. 200 PRINT “Line=”; ERL
  11319. 2.12
  11320. 210 END
  11321. 2.12
  11322. 220 ENDPROC
  11323. 2.12
  11324. In this second case, an error occurs, which is trapped by the ON ERROR
  11325. statement (see line 130) and results in the following lines being
  11326. printed by PROCerror:
  11327. 2.12
  11328. Nmbr=99
  11329. 2.12
  11330. Text=I am an error message
  11331. 2.12
  11332. Line=140
  11333. 2.12
  11334. This use of the overflow flag can result in unexpected behaviour from
  11335. some programs. For example, if the last SWI call in a machine code
  11336. subroutine returns with the overflow flag set, indicating an error
  11337. occurred during the execution of the SWI, and this flag is not reset
  11338. before the subroutine returns to BASIC, then BASIC will take this as an
  11339. error condition. Exactly what happens depends on the contents of
  11340. register zero. If it points to a valid error block, then BASIC’s error
  11341. trapping mechanism will function properly. Otherwise unpredictable
  11342. errors (such as an address exception) will happen.
  11343. 2.12
  11344. •   New SWI calls in RISC-OS − The following program can be used to list
  11345. all the SWI calls available in OS. It basically works by calling the
  11346. “OS_SWINumberToString” SWI for all possible SWI numbers and displaying
  11347. the returned string. To speed things up it checks to see if the first
  11348. SWI in a each chunk of 64 is valid. If not, it ignores the rest of the
  11349. chunk. “Valid” in this case means that the SWI name is neither
  11350. “OS_Undefined” nor “User”. SWI names beginning with “X” are also ignored
  11351. as duplicates.
  11352. 2.12
  11353.  10 REM > SWIlist
  11354. 2.12
  11355.  20 :
  11356. 2.12
  11357.  30 buflen%=100
  11358. 2.12
  11359.  40 DIM buffer% buflen%
  11360. 2.12
  11361.  50 :
  11362. 2.12
  11363.  60 SYS “OS_SWINumberFromString”,,
  11364. 2.12
  11365. “XOS_SWINumberToString” TO S%
  11366. 2.12
  11367.  70 :
  11368. 2.12
  11369.  80 VDU 14
  11370. 2.12
  11371.  90 :
  11372. 2.12
  11373. 100 FOR chunk% = 0 TO &80000 STEP 64
  11374. 2.12
  11375. 110 SYS S%,chunk%,buffer%,buflen%
  11376. 2.12
  11377.  TO ,swi$;V%
  11378. 2.12
  11379. 120 IF V%AND1 ELSE IF LEFT$(swi$,1)
  11380. 2.12
  11381. =“X” ELSE IF swi$ =“User” ELSE IF swi$<>“OS_Undefined” PROCchunk
  11382. 2.12
  11383. 130 NEXT
  11384. 2.12
  11385. 140 :
  11386. 2.12
  11387. 150 VDU15
  11388. 2.12
  11389. 160 :
  11390. 2.12
  11391. 170 END
  11392. 2.12
  11393. 180
  11394. 2.12
  11395. 190 DEFPROCchunk
  11396. 2.12
  11397. 200 FOR swi% = chunk% TO chunk%+63
  11398. 2.12
  11399. 210 SYS S%,swi%,buffer%,buflen% TO
  11400. 2.12
  11401.  ,swi$;V%
  11402. 2.12
  11403. 220 IF V%AND1 ELSE IF LEFT$(swi$,1)
  11404. 2.12
  11405. =“X” ELSE IF swi$=“User” ELSE IF swi$<>“OS_Undefined” PRINT “SWI number
  11406. ”;RIGHT$(“0000”+
  11407. 2.12
  11408. STR$~swi%,5);“ is ”;swi$
  11409. 2.12
  11410. 230 NEXT
  11411. 2.12
  11412. 240 ENDPROC
  11413. 2.12
  11414. If this program is run, a list of SWIs is generated. Those for the
  11415. FPemulator and ColourTrans will only be listed if the relevant Relocat
  11416. able Module is loaded when SWIlist is run. Those for RamFS will only be
  11417. listed if the RAM disc is configured.
  11418. 2.12
  11419. The program was also run against Arthur 1.2 and by comparing the two
  11420. listings, it was possible to identify those SWIs which appeared in the
  11421. RISC-OS listing but not in that for Arthur. These are presumably new
  11422. SWIs and are listed below.
  11423. 2.12
  11424. 00049   OS_ReadArgs
  11425. 2.12
  11426. 0004A   OS_ReadRAMFsLimits
  11427. 2.12
  11428. 0004B   OS_ClaimDeviceVector
  11429. 2.12
  11430. 0004C   OS_ReleaseDeviceVector
  11431. 2.12
  11432. 0004D   OS_DelinkApplication
  11433. 2.12
  11434. 0004E   OS_RelinkApplication
  11435. 2.12
  11436. 0004F   OS_HeapSort
  11437. 2.12
  11438. 00050   OS_ExitAndDie
  11439. 2.12
  11440. 00051   OS_ReadMemMapInfo
  11441. 2.12
  11442. 00052   OS_ReadMemMapEntries
  11443. 2.12
  11444. 00053   OS_SetMemMapEntries
  11445. 2.12
  11446. 00054   OS_AddCallBack
  11447. 2.12
  11448. 00055   OS_ReadDefaultHandler
  11449. 2.12
  11450. 00056   OS_SetECFOrigin
  11451. 2.12
  11452. 00057   OS_SerialOp
  11453. 2.12
  11454. 00058   OS_ReadSysInfo
  11455. 2.12
  11456. 00059   OS_Confirm
  11457. 2.12
  11458. 0005A   OS_ChangedBox
  11459. 2.12
  11460. 0005B   OS_CRC
  11461. 2.12
  11462. 0005C   OS_ReadDynamicArea
  11463. 2.12
  11464. 0005D   OS_PrintChar
  11465. 2.12
  11466. 000EB   OS_ConvertFixedFileSize
  11467. 2.12
  11468. 000EC   OS_ConvertFileSize
  11469. 2.12
  11470. 00240   IIC_Control
  11471. 2.12
  11472. 40098   Font_ReadColourTable
  11473. 2.12
  11474. 400DE   Wimp_StartTask
  11475. 2.12
  11476. 400DF   Wimp_ReportError
  11477. 2.12
  11478. 400E0   Wimp_GetWindowOutline
  11479. 2.12
  11480. 400E1   Wimp_PollIdle
  11481. 2.12
  11482. 400E2   Wimp_PlotIcon
  11483. 2.12
  11484. 400E3   Wimp_SetMode
  11485. 2.12
  11486. 400E4   Wimp_SetPalette
  11487. 2.12
  11488. 400E5   Wimp_ReadPalette
  11489. 2.12
  11490. 400E6   Wimp_SetColour
  11491. 2.12
  11492. 400E7   Wimp_SendMessage
  11493. 2.12
  11494. 400E8   Wimp_CreateSubMenu
  11495. 2.12
  11496. 400E9   Wimp_SpriteOp
  11497. 2.12
  11498. 400EA   Wimp_BaseOfSprites
  11499. 2.12
  11500. 400EB   Wimp_BlockCopy
  11501. 2.12
  11502. 400EC   Wimp_SlotSize
  11503. 2.12
  11504. 400ED   Wimp_ReadPixTrans
  11505. 2.12
  11506. 400EE   Wimp_ClaimFreeMemory
  11507. 2.12
  11508. 400EF   Wimp_CommandWindow
  11509. 2.12
  11510. 400F0   Wimp_TextColour
  11511. 2.12
  11512. 400F1   Wimp_TransferBlock
  11513. 2.12
  11514. 400F2   Wimp_ReadSysInfo
  11515. 2.12
  11516. 400F3   Wimp_SetFontColours
  11517. 2.12
  11518. 401C7   Sound_QInterface
  11519. 2.12
  11520. 40244   ADFS_Retries
  11521. 2.12
  11522. 40245   ADFS_DescribeDisc
  11523. 2.12
  11524. 40289   Podule_HardwareAddress
  11525. 2.12
  11526. 40540   FileCore_DiscOp
  11527. 2.12
  11528. 40541   FileCore_Create
  11529. 2.12
  11530. 40542   FileCore_Drives
  11531. 2.12
  11532. 40543   FileCore_FreeSpace
  11533. 2.12
  11534. 40544   FileCore_FloppyStructure
  11535. 2.12
  11536. 40545   FileCore_DescribeDisc
  11537. 2.12
  11538. 405C0   Shell_Create
  11539. 2.12
  11540. 405C1   Shell_Destroy
  11541. 2.12
  11542. 406C0   Hourglass_On
  11543. 2.12
  11544. 406C1   Hourglass_Off
  11545. 2.12
  11546. 406C2   Hourglass_Smash
  11547. 2.12
  11548. 406C3   Hourglass_Start
  11549. 2.12
  11550. 406C4   Hourglass_Percentage
  11551. 2.12
  11552. 406C5   Hourglass_LEDs
  11553. 2.12
  11554. 40700   Draw_ProcessPath
  11555. 2.12
  11556. 40701   Draw_ProcessPathFP
  11557. 2.12
  11558. 40702   Draw_Fill
  11559. 2.12
  11560. 40703   Draw_FillFP
  11561. 2.12
  11562. 40704   Draw_Stroke
  11563. 2.12
  11564. 40705   Draw_StrokeFP
  11565. 2.12
  11566. 40706   Draw_StrokePath
  11567. 2.12
  11568. 40707   Draw_StrokePathFP
  11569. 2.12
  11570. 40708   Draw_FlattenPath
  11571. 2.12
  11572. 40709   Draw_FlattenPathFP
  11573. 2.12
  11574. 4070A   Draw_TransformPath
  11575. 2.12
  11576. 4070B   Draw_TransformPathFP
  11577. 2.12
  11578. 40780   RamFS_DiscOp
  11579. 2.12
  11580. 40781   RamFS_NOP
  11581. 2.12
  11582. 40782   RamFS_Drives
  11583. 2.12
  11584. 40783   RamFS_FreeSpace
  11585. 2.12
  11586. 40784   RamFS_NOP
  11587. 2.12
  11588. 40785   RamFS_DescribeDisc
  11589. 2.12
  11590. 40740   ColourTrans_SelectTable
  11591. 2.12
  11592. 40741   ColourTrans_SelectGCOLTable
  11593. 2.12
  11594. 40742   ColourTrans_ReturnGCOL
  11595. 2.12
  11596. 40743   ColourTrans_SetGCOL
  11597. 2.12
  11598. 40744   ColourTrans_ReturnColourNumber
  11599. 2.12
  11600. 40745   ColourTrans_ReturnGCOLForMode
  11601. 2.12
  11602. 40746   ColourTrans_ReturnColourNumber
  11603. 2.12
  11604. ForMode
  11605. 2.12
  11606. 40747   ColourTrans_ReturnOppGCOL
  11607. 2.12
  11608. 40748   ColourTrans_SetOppGCOL
  11609. 2.12
  11610. 40749   ColourTrans_ReturnOppColour
  11611. 2.12
  11612. Number
  11613. 2.12
  11614. 4074A   ColourTrans_ReturnOppGCOLFor
  11615. 2.12
  11616. Mode
  11617. 2.12
  11618. 4074B   ColourTrans_ReturnOppColour
  11619. 2.12
  11620. NumberForMode
  11621. 2.12
  11622. 4074C   ColourTrans_GCOLToColourNumber
  11623. 2.12
  11624. 4074D   ColourTrans_ColourNumberToGCOL
  11625. 2.12
  11626. 4074E   ColourTrans_ReturnFontColours
  11627. 2.12
  11628. 4074F   ColourTrans_SetFontColours
  11629. 2.12
  11630. 40750   ColourTrans_InvalidateCache
  11631. 2.12
  11632. •   Starting up TinyDirs automatically via the Desktop initialisation
  11633. file − Archive 2.10  p 15, refers to the facility whereby the Desktop
  11634. can be caused to run a file of initialisation commands at start-up time.
  11635. One command that can be included in this file is a command to start up
  11636. TinyDirs and automatically install high-use directories or applications
  11637. on the icon bar.
  11638. 2.12
  11639. TinyDirs accepts multiple arguments on the command, separated by blanks.
  11640. So, if you created two application directories for, say, the Basic
  11641. Editor and Twin, you could include the following command in the Desktop
  11642. startup file (assuming that the name of the disc where !TinyDirs,
  11643. !BasicEdit and !Twin all reside is “SysDisc”):
  11644. 2.12
  11645. Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!BasicEdit
  11646. ADFS::SysDisc.$.!Twin
  11647. 2.12
  11648. Although two icons will be installed on the icon bar, only one copy of
  11649. the TinyDirs application is started up. If two separate commands had
  11650. been used:
  11651. 2.12
  11652. Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!BasicEdit
  11653. 2.12
  11654. Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!Twin
  11655. 2.12
  11656. then, although the icon bar would look exactly the same, with the same
  11657. two icons installed, two copies of TinyDirs would have been started up,
  11658. using twice the memory.
  11659. 2.12
  11660. It also seems safe to reduce the memory required by TinyDirs from 32k to
  11661. 24k by altering the WimpSlot command in the !Run file for TinyDirs to
  11662. 2.12
  11663. WimpSlot -min 24k -max 24k
  11664. 2.12
  11665.  
  11666. •   Acorn DTP fonts and print outs − P.J.Burn says that in order to
  11667. print out Acorn DTP documents on an A310 you should select mode 11 as
  11668. this releases 40k of memory. He also says that in order to increase the
  11669. speed of the DTP screen update you should ensure that the font cache is
  11670. 24k or larger.
  11671. 3.1
  11672. •   Acorn DTP double spacing − Some readers have complained that when
  11673. starting a new paragraph the Acorn DTP will always produce a double
  11674. space. This can be solved by altering the space above setting of the
  11675. paragraph’s style.
  11676. 3.1
  11677. •   BASIC listings for !Edit − Mark Taylor says that it is easy to
  11678. create an ASCII copy of a BASIC program. Just install !Edit in the
  11679. normal way and then create a task window (this can be done by clicking
  11680. the MENU button on the !Edit icon and selecting the ‘New task window’
  11681. item from the ‘Create’ sub-menu). In this window start BASIC by typing
  11682. *BASIC, then just LOAD the required program and LIST it. You can now
  11683. save the contents of the window  as a normal ASCII file.
  11684. 3.1
  11685. •   C operating system calls (issue 2.12 p 36 cont) − Ray Loades-Bannon
  11686. says that to access OSCLI commands from C you should use either:
  11687. 3.1
  11688. system (“screensave <pathname>””)
  11689. 3.1
  11690. or:
  11691. 3.1
  11692. {3 .1
  11693.    char *cptr;
  11694. 3.1
  11695.    strcpy (cptr,“screensave ”);
  11696. 3.1
  11697.    strcat(cptr,pathnameptr);
  11698. 3.1
  11699.    system(cptr);
  11700. 3.1
  11701. }
  11702. 3.1
  11703. See the ‘Calling other programs from C’ chapter in the C manual for
  11704. further details.
  11705. 3.1
  11706. •   Debugger BreakPoints − When stepping though code, it is useful to
  11707. run the code up to a breakpoint, and then remove the breakpoint and
  11708. reposition it further ahead. Here are three function keys defin-itions
  11709. suggested by Robin Terry to help you do this:
  11710. 3.1
  11711. *Key1 “BreakClr PC|MBreakSet ”
  11712. 3.1
  11713. *Key2 “Continue|M”
  11714. 3.1
  11715. *Key3 “MemoryI PC|M”
  11716. 3.1
  11717. The first breakpoint is set by using *BreakSet, but subsequent break
  11718. points can be set by pressing <f1> and typing in the address. Then press
  11719. <f2> should be pressed to execute the code , and <f3> should be pressed
  11720. to look at where you’ve got to.
  11721. 3.1
  11722. •   Droom under RISC-OS − A.H.Eagle says that when using Droom under
  11723. RISC-OS the $.Data.Map program just caused the computer to freeze at
  11724. line 820. This line reads 820 ?&CFF=L, and doesn’t seem to serve any
  11725. purpose (perhaps it is a hang-over from the BBC version). He removed
  11726. this line and the program now seems to work OK ( ... so far!).
  11727. 3.1
  11728. •   Econet and the Desktop − A warning to all people using the desktop
  11729. on the network: *commands are truncated to about 80 characters by the
  11730. NetFiler, so for example, if you are several directories down and you
  11731. rename a file, it could be renamed to something that you didn’t quite
  11732. expect. More dangerous is the *Delete, in that you could want to *delete
  11733. net#254:<pathname>.FredOld  but your good copy is deleted when the
  11734. command is truncated to *delete net#254:<pathname>.Fred. Truncation
  11735. occurs due to the Acorn fileservers only being able to cope with data
  11736. packets of around 80 characters (although the SJ Research fileserver can
  11737. handle packets up to 128 characters). Another interesting feature is
  11738. that if the *command is over 128 characters, no truncation occurs and a
  11739. Net error is generated.
  11740. 3.1
  11741. •   Filer_OpenDir revisited (issue 2.12 p 6 cont) − A simpler way of
  11742. using system variables with the *Filer_OpenDir command has been
  11743. suggested by one of the Archive BBS callers:
  11744. 3.1
  11745. *Set Alias$temp Filer_OpenDir <system variable>|MUnset Alias$temp|M
  11746. 3.1
  11747. *temp
  11748. 3.1
  11749. This sets up a system variable, called Alias$temp, which is used to
  11750. expand the system variable and then delete itself once called.
  11751. 3.1
  11752. •   Hard Disc Backup program on Careware 3 − Terry Bromilow says: “The
  11753. program was originally written to run under Arthur OS using the D or L
  11754. format discs. I put a new front end on it to make an application for
  11755. RISC-OS and put in some lines to accommodate E format discs. It is now
  11756. evident that the latter did not get tested.
  11757. 3.1
  11758. The BASIC program !Hdb_v200 in the !HDBackup directory should be amended
  11759. as follows:-
  11760. 3.1
  11761. Interchange the adjacent lines 2140 and 2150 and put a new line between
  11762. them: 2141 *DISMOUNT
  11763. 3.1
  11764. •   Hard disc parking (2.11 p 13 cont) − Martyn Lovell says that
  11765. although *bye from a non-adfs filing system won’t park an adfs hard disc
  11766. *adfs:bye will (SCSI hard drive owners should use *scsi:bye).
  11767. 3.1
  11768. •   Keyboard condensation − One reader has noted that there is no
  11769. lacquer on the top surface of the keyboard PCB. It is not unusual for
  11770. people to blow dust, etc away from the keyboard, however, this will
  11771. cause condensation onto the PCB and cause some minor corrosion. This can
  11772. easily be wiped away.
  11773. 3.1
  11774. •   Limited ADFS memory error − The ADFS module will remember the
  11775. catalogues of any discs it sees (e.g. those that it *mounts). However,
  11776. it is limited to the amount of memory it can allocate to ‘remembering’
  11777. these catalogues. This is governed by the *Configure ADFSDirCache
  11778. command. When the ADFS directory cache is full, the oldest catalogues
  11779. should be discarded as new ones are encountered. Unfortunately, the 
  11780. module has a bug, which prevents it from doing this properly. What makes
  11781. this bug so serious is that it can cause the dreaded ‘Filecore in use’
  11782. error, which cannot be rectified, thereby making it impossible for you
  11783. to save any data, etc that you might have been working on. (If Phil
  11784. Colmer at Acorn, or whoever, could give us a clue on this one, that
  11785. would be useful. Ed.)
  11786. 3.1
  11787. •   Naming discs − You may already realise that you should not give
  11788. discs the same name (using the *NameDisc command) as RISC-OS will only
  11789. access one of the discs i.e. the one most recently *MOUNTed. David
  11790. Leckie found that this also holds up for fileservers discs. He had two
  11791. separate fileservers 254 and 245 both with hard disks called FS, as you
  11792. can imagine this cause much confusion!
  11793. 3.1
  11794. •   Obey module bug − “Speak and I shall obey ... or maybe not.” There
  11795. is a bug in the obey module supplied in the ROMS (v0.07). If an
  11796. environment variable is set to a string ending with the tilde character
  11797. (~) then the string will magically acquire a few extra characters, or
  11798. worse.
  11799. 3.1
  11800. Using Edit, create a new obey file containing the command:
  11801. 3.1
  11802. Set testvariable abcdef~
  11803. 3.1
  11804. or similar, ensuring that the <return> key is pressed immediately after
  11805. the tilde (~). Save the file to a directory window and then double click
  11806. on the file icon to run the file. This will create the variable
  11807. “testvariable”. Press <f12> to get a system prompt and type
  11808. 3.1
  11809. Show testvariable
  11810. 3.1
  11811. to display the variable’s value. It will show some-thing like
  11812. 3.1
  11813. testvariable : abcdef~~&’
  11814. 3.1
  11815. i.e. it has acquired a few extra characters. (N.B. I’ve been unable to
  11816. repeat (see below) this so the characters may be wrong − but I do know
  11817. where they originate from so this is an educated guess)
  11818. 3.1
  11819. Worse is that depending on the exact situation when the file is run an
  11820. “Abort on Data Transfer” error may occur (!!) and the variable will not
  11821. have been created.
  11822. 3.1
  11823. The problem is easily solved − don’t try and create a string ending with
  11824. ~ in an obey file. If necessary a space can be placed after the tilde
  11825. (~) and this will be enough to prevent the error. Clifford Hoggarth
  11826. 3.1
  11827. •   RAM disc size − To read the size of a RAM disc, not *configured but
  11828. set from within the desktop task manager you should use:
  11829. 3.1
  11830. SYS “OS_ReadRAMFsLimits” TO A,B
  11831. 3.1
  11832. (B-A)/1024 gives the size of the the RAM disc in kbytes.
  11833. 3.1
  11834. To check if a *configured ram disc exists then try:
  11835. 3.1
  11836. SYS “OS_Byte”,161,144 To ,,ramdiscsize%
  11837. 3.1
  11838. The variable ramdiscsize% indicates the number of RAM pages to be
  11839. allocated to the RAM disc e.g. 8k blocks for a 300 series.
  11840. 3.1
  11841. •   Recursive directory copying − If you copy a directory into itself
  11842. (as Clive Payne did with his library directory in issue 2.11 p 15) the
  11843. computer will get into an infinite loop of copying directories inside of
  11844. themselves. To stop the computer from using all your disc space up, you
  11845. can press the escape key. The error can then be rectified by going into
  11846. the parent directory and deleting its children i.e. you don’t have to
  11847. reformat your disc!
  11848. 3.1
  11849. •   ROM Speed Up − In several Archive issues (e.g. issue 2.11 p 8) we
  11850. have pointed out that the speed at which the Archimedes runs its ROMs
  11851. can be increased. Martyn Lovell advises us that this can cause RISC-OS
  11852. to crash and so is not very reliable.
  11853. 3.1
  11854. •   Squish − I am very pleased with Mike Harrison’s “SQUISH” program (on
  11855. Careware disc 2). It enables me to write meaningful, well laid out
  11856. programs and then to gain processing speed following compression.
  11857. Brilliant!
  11858. 3.1
  11859. I have, however, discovered a bug. This occurs whenever you use a
  11860. statement such as:
  11861. 3.1
  11862. IF a=b c=d
  11863. 3.1
  11864. What actually happens is that it compresses to:
  11865. 3.1
  11866. IF a=bc=d
  11867. 3.1
  11868. The program then fails “Unknown or missing variable”. To circumvent
  11869. this, the full construct IF ... THEN ... should be used. B.R.Wilson,
  11870. Solihull
  11871. 3.1
  11872. •   Uncluttering catalogues (2.11 p 13 cont) − If you close down an
  11873. application using the ADJUST button the filer will (re)open the viewer
  11874. containing the file you last accessed.
  11875. 3.1
  11876. •   Using Sys$DateFormat (issue 2.12 p 19 cont) − Mark Taylor (along
  11877. with several others) has answered a question which appeared in last
  11878. month’s Help!!! column.
  11879. 3.1
  11880. The system variable Sys$DateFormat is only used by the SWI call
  11881. OS_ConvertStandardDate AndTime and not by the BASIC pseudo variable
  11882. TIME$ (see pp 400-402 of the old PRM for further details).
  11883. 3.1
  11884.  10 REM >$.Convert
  11885. 3.1
  11886.  20 REM a program to convert TIME &
  11887. 3.1
  11888.  DATE in to a string,
  11889. 3.1
  11890.  30 REM in the format of the system
  11891. 3.1
  11892. variable Sys$DateFormat
  11893. 3.1
  11894.  40 :
  11895. 3.1
  11896.  50 REM some workspace for the time
  11897. 3.1
  11898.  & date SYS call
  11899. 3.1
  11900.  60 DIM block% 100
  11901. 3.1
  11902.  70 :
  11903. 3.1
  11904.  80 *Set Sys$DateFormat
  11905. 3.1
  11906. %yr%mn%dy%24%mi%se
  11907. 3.1
  11908.  90 string$=FNtime_date
  11909. 3.1
  11910. 100 PRINT “The time is
  11911. 3.1
  11912. (YYMMDDHHMMSS) = “;string$
  11913. 3.1
  11914. 110 END
  11915. 3.1
  11916. 120 :
  11917. 3.1
  11918. 130 DEFFNtime_date
  11919. 3.1
  11920. 140 REM first get 5 byte time code
  11921. 3.1
  11922. 150 REM using OS_Word &0E,3
  11923. 3.1
  11924. 160 SYS “OS_Word”,&0E,3 TO r0,r1
  11925. 3.1
  11926. 170 :
  11927. 3.1
  11928. 180 REM get date & time string
  11929. 3.1
  11930. 190 SYS “OS_ConvertStandardDate
  11931. 3.1
  11932. AndTime“,block%,block%+50,49
  11933. 3.1
  11934.  TO r0,r1,r2
  11935. 3.1
  11936. 200 :
  11937. 3.1
  11938. 210 REM extract string from data
  11939. 3.1
  11940.  block
  11941. 3.1
  11942. 220 date$=“”
  11943. 3.1
  11944. 230 FOR x%=0 TO (12-r2)
  11945. 3.1
  11946. 240 data$+=CHR$(r0?x%)
  11947. 3.1
  11948. 250 NEXT x%
  11949. 3.1
  11950. 260 =date$
  11951. 3.1
  11952.  
  11953. 3.1
  11954. •   VIDC warning − Someone (Philip Green, I think) sent in a warning to
  11955. say that you should NEVER connect and disconnect video and monitor
  11956. connections with the computer switched on for fear of damaging the VIDC.
  11957. 3.1
  11958. I have been doing just that for two years now on several different
  11959. Archimedes computers and have NEVER had any problems, so I wasn’t going
  11960. to bother printing the warning − it seemed a little over cautious. This
  11961. morning I connected up a brand new monitor, live as usual, and got a
  11962. funny picture. “Drat”, says I, “It’s a DOA and will have to go back to
  11963. the distributor from whence it came!” However, further fiddling and
  11964. switching of monitors (live) between computers revealed that the
  11965. computer was at fault − there were funny dark vertical lines down the
  11966. display and the sound was a bit croaky (sound comes through VIDC). This
  11967. is what you call learning the hard way or “Pride comes before a fall” or
  11968. something. Anyway, don’t say we didn’t warn you! Ed.
  11969. 3.1
  11970. •   Hints & Tips printing error, Archive 2.12 p 7. The IF statement at
  11971. line 750 is incorrect − a 7 has been cut off by the editor − ‘key% < 5’
  11972. should read ‘key% <57’.
  11973.  
  11974. •   *RMTidy and ADFS − If you perform a *RMTidy any discs will be
  11975. dismounted and any directory settings (*DIR) will be lost. This is
  11976. because this function re-initialises all the modules including the
  11977. FileCore%ADFS and ADFS modules.
  11978. 3.2
  11979. •   Acorn DTP − if you want to import text that has a return at the end
  11980. of each line e.g. spooled BASIC programs, poetry, songs, etc then if you
  11981. import them directly Acorn DTP will ignore the returns and give you a
  11982. continuous block of text. There is a way around this problem:
  11983. 3.2
  11984. 1) In Acorn DTP define a new style say PROGRAM or SONG, etc
  11985. 3.2
  11986. 2) Set the space above parameter to 0
  11987. 3.2
  11988. 3) Load your text into !Edit
  11989. 3.2
  11990. 4) Select the find window of the !Edit menu i.e. press <f4>
  11991. 3.2
  11992. 5) Select the ‘magic characters’ option
  11993. 3.2
  11994. 6) Type: \x0A into the find box and /x0a/x0a in the replace box
  11995. 3.2
  11996. 7) Select the GO option and then select the ‘replace end of file’ option
  11997. 3.2
  11998. The effect is that each line is treated as a new paragraph with its
  11999. style defined as PROGRAM.
  12000. 3.2
  12001. •   Alphabase RISC-OS compatible? I read Gerald Fitton’s tale of woe
  12002. (Archive 2.12 p43) just two days after encountering exactly the same
  12003. problem myself with Alphabase. The ‘Readme’ file on the program disc
  12004. states that hard disc installation can be done in ‘the usual RISC-OS
  12005. manner’ rather that using the ‘Install’ file. It seems to me that it
  12006. must be done in the former way! Apart from messing up the configure
  12007. settings as Gerald describes, ‘Install’ fails to copy the !Alphabase
  12008. application directory to drive 4 (it can’t, since the *COPY command
  12009. issued at line 160 has no R option). Remedying this doesn’t help: the
  12010. program still crashes with a ‘can’t find’ message when you attempt to
  12011. boot via the Library. After wasting many hours in debugging attempts, I
  12012. scrubbed the lot and simply copied !Alphabase to :4.$, whence the
  12013. program is run without problems by clicking on the desktop. Inciden
  12014. tally, again contrary to what is said on the ‘Readme’ file, the floppy
  12015. disc stubbornly refused to boot on Shift-Break. Bill Templeton.
  12016. 3.2
  12017. •   Archimedes Fans − Ray Maidstone of Norwich has been investigating
  12018. Archimedes fans (the cooling kind). He says that if you plug in any
  12019. extensions on to your Archimedes e.g. backplanes, RAM upgrades, etc then
  12020. you really should be using a fan. This keeps the temperature of the
  12021. Archimedes at an acceptable level, thereby extending the life of the
  12022. components.
  12023. 3.2
  12024. •   Binary-Chop − Michael Sawle sent in this routine which can be used
  12025. for locating an item in an array − one of the beauties of this routine
  12026. being that it only needs enough characters to uniquely identify the
  12027. string being searched for. The routine requires data to be stored
  12028. alphabetically in a matrix M$(1),M$(2),...,M(NR%) where NR% is the
  12029. number of records currently stored. The routine returns the matrix
  12030. element number of the desired record (or nearest available).
  12031. 3.2
  12032. DEFFNbinarychop(find$)
  12033. 3.2
  12034. LOCAL A%,B%,R%
  12035. 3.2
  12036. where=0 : A%=0 : B%=NR%
  12037. 3.2
  12038. REPEAT
  12039. 3.2
  12040. R%=INT((A%+B%)/2)
  12041. 3.2
  12042. IF M$(R%)>find$ THEN
  12043. 3.2
  12044. B%=R%
  12045. 3.2
  12046. ELSE
  12047. 3.2
  12048. IF M$(R%)<find$ THEN A%=R%
  12049. 3.2
  12050. ELSE
  12051. 3.2
  12052. where=R%
  12053. 3.2
  12054. ENDIF
  12055. 3.2
  12056. ENDIF
  12057. 3.2
  12058. UNTIL where>0 OR B%-A%=1
  12059. 3.2
  12060. IF where=0 THEN where=A%+1
  12061. 3.2
  12062. =where
  12063. 3.2
  12064. In fact this routine should be called a binary search routine. It chops
  12065. the list of records in two and then checks which half of the data set
  12066. the search string should appear. It then chops this half in two and so
  12067. on until finds the string or it realises the string does not exist. This
  12068. means that the computer can significantly reduce the number of checks it
  12069. has to make before reaching a result e.g. if you have 32768 (i.e. 2^15)
  12070. records then the computer will make a maximum of 15 checks. The price
  12071. that must be paid for this efficiency is that the data set must be
  12072. sorted in some recognisable order e.g. alphabetically, numerically,
  12073. ASCII, etc. The best versions of this technique are usually recursive.
  12074. (Perhaps someone might like to have a go at writing one?)
  12075. 3.2
  12076. •   Colour TV’s as monitors − Several times in Hints & Tips, connection
  12077. of the Archimedes to colour TV’s has been mentioned. I have succeeded in
  12078. doing just this. In Archive 2.7 p11, Oliver Cornes says that plugging
  12079. the Archimedes’ SCART into a video recorder doesn’t work − this is
  12080. because a VCR only deals with composite signals, not RGB. However, if
  12081. your TV has a SCART socket, and many new ones do, then connection may
  12082. well be possible direct to the TV. You will have to tell the TV to use
  12083. RGB input, not the composite (it only uses composite then for timing).
  12084. There may be (indeed, it would be odd if there wasn’t) a way of doing
  12085. this with the TV controls. My TV has two sockets and if you tell it to
  12086. use socket 0 it uses socket one with RGB.
  12087. 3.2
  12088. However, I didn’t find this out until I found out that one of the pins
  12089. on the SCART standard is for just this type of use − pin 16 must be
  12090. between +1V and +3V with respect to pin 18 (i.e. connect a 1.5V battery
  12091. between them − the −ve end to pin 18, the +ve end to pin 16). The TV
  12092. then automatically switches to SCART RGB input. Note that this overrides
  12093. any channel selection made, so you should put a switch in line so you
  12094. can switch the signal off, otherwise you can’t watch TV. Connection to
  12095. the SCART plug is often maligned as difficult, but it is only a case of
  12096. knowing how to do it. The proper way is to remove the pin you wish to
  12097. make connection to, connect it up and then put it back. The pins have
  12098. barbs to prevent them from falling out, so use a pair of narrow pliers
  12099. to squeeze the barb back and push the pin out through the rear of the
  12100. plug. Also make sure that you re-insert the pin the right way round −
  12101. just copy the other pins. They only go in properly one way round anyway.
  12102. Kevin Quinn
  12103. 3.2
  12104. •   FileCore in use remedy − If the Archimedes ‘sees’ too many ADFS
  12105. directories then a ‘Filecore in use’ error may occur and you will be
  12106. unable to save any data in your machine. You can overcome this by typing
  12107. the following four lines after the error has occurred:
  12108. 3.2
  12109. *RmReInit FileCore (this will fail giving a Bad number error)
  12110. 3.2
  12111. *RmReInit FileCore
  12112. 3.2
  12113. *RmReInit ADFS
  12114. 3.2
  12115. *RmReInit HardDisc (A300’s and A3000’s only)
  12116. 3.2
  12117. •   MaxGammon update − The MaxGammon game on Careware 2 cannot be played
  12118. in mode 15. In order to over come this you should:
  12119. 3.2
  12120. 1) Load in the BASIC !RunImage file in the !MaxGammon directory.
  12121. 3.2
  12122. 2) Type the following:
  12123. 3.2
  12124. 10840colour%=FNmg_Colour(mg_red
  12125. 3.2
  12126. _player%)
  12127. 3.2
  12128. 11230tc%=mgc_grey_point%
  12129. 3.2
  12130. 3) Save the program.
  12131. 3.2
  12132. •   Oak MS-DOS SCSI as Drive D − I use the PC emulator occasionally for
  12133. my work. It therefore did not take very long to use up all 10M of the
  12134. MS-DOS drive C partition on my 47M SCSI drive. The obvious thing to do
  12135. would be to create another MS-DOS partition for drive D. However on the
  12136. version of the PC emulator that I am using (Emulate121) the Archimedes
  12137. hard discs 4 and 5 are mapped to MS-DOS discs C and D. Therefore drive C
  12138. and D cannot both exist on the same hard disc (on the emulator) and two
  12139. hard disc drives are required for two partitions.
  12140. 3.2
  12141. On the OAK SCSIFS each winchester drive has the following information:-
  12142. 3.2
  12143. a) filing system drive number (e.g. :4 or :5)
  12144. 3.2
  12145. b) SCSI hardware address (each device on the SCSI bus has a unique
  12146. address)
  12147. 3.2
  12148. c) logical unit number (SCSI ‘software’ address)
  12149. 3.2
  12150. If you are lucky enough to have an OAK SCSI (::SCSIDisk4) with an MS-DOS
  12151. partition (Drive _C) then here’s how to create MS-DOS drive D.
  12152. 3.2
  12153. 1. Run ‘SCSIForm’
  12154. 3.2
  12155. 2. Note that drive :4 is SCSI ID = 0, LUN = 0
  12156. 3.2
  12157. 3. Add drive 5 with SCSI with SCSI ID = 0, LUN = 0 (same as drive :4)
  12158. 3.2
  12159. 4. Exit SCSIForm and enter the desktop. There should be an additional
  12160. hard disc icon ‘SCSI 5’
  12161. 3.2
  12162. 5. Start up the PC emulator (version 1.20 or greater?)
  12163. 3.2
  12164. 6. Type FDISK. An extra option should appear (5 − select next fixed disc
  12165. drive). Select this and the disc drive should now become number 2. Then
  12166. select option 1 ‘Create DOS Partition’
  12167. 3.2
  12168. 7. Type Format D:
  12169. 3.2
  12170. 8. Type CHKDSK D: (this checks partition is OK)
  12171. 3.2
  12172. 9. When using the desktop always us SCSIFS::SCSIDisc4. Ignore disc 5
  12173. 3.2
  12174. Ralph Barrett
  12175. 3.2
  12176. (We have not had a chance to try this out yet, so you follow these
  12177. suggestions at your own peril. Ed)
  12178. 3.2
  12179. •   Recursive directory move bug − one reader noted that while in the
  12180. desktop, if you moved a directory into itself (by holding the shift
  12181. button down while copying) the files in the directory will be moved
  12182. further and further down a directory tree until your whole disc has been
  12183. filled with directories! The problem with this bug is that you can’t
  12184. move your files back to their original position because the disc is
  12185. already full. You must copy the other files onto another disc and then
  12186. remove the offending directory.
  12187. 3.2
  12188. •   To scroll or not to scroll? The strange behaviour mentioned in the
  12189. BASIC V Forum (Archive 3.1 p36) is actually caused by the *Configure
  12190. Scroll or *Configure NoScroll setting. This setting allows us to control
  12191. the behaviour of the ends of lines. *Configure Scroll should be used for
  12192. compatibility with earlier machines. The RISC-OS desktop, however, has a
  12193. habit of countermanding the configured values and in this case it
  12194. decides that it prefers NoScroll. If you have a program which relies on
  12195. the behaviour of the ends of lines, then you can execute VDU 23,16,&FE,1
  12196. || to temporarily obtain the Scroll option, or VDU 23,16,&FE,0 || to
  12197. obtain NoScroll behaviour.
  12198. 3.2
  12199.  
  12200. •   AutoCAD to !Draw conversion − The RISC-OS application !Draw can
  12201. accept input from a DXF (Drawing Interchange Format) file. These files
  12202. can be produced by packages such as ‘AutoSketch’ and ‘AutoCAD’. To get a
  12203. file from a IBM PC running the ‘AutoCAD’ package to !Draw the following
  12204. procedure should be used.
  12205. On the IBM PC:
  12206. 1.   Do a ‘DXFOUT’ command from within Auto-CAD to output the current
  12207. file in DXF format.
  12208. 2.   This file should be copied to a IBM format 5.25“ or 3.5” disc.
  12209. On the Archimedes:
  12210. 3.   Start the PC emulator on the Archimedes.
  12211. 3.3
  12212. 4.   Perform a ‘putfile MS_DOS_Name.dxf ADFS_Name’ from within the
  12213. emulator to transfer the file from MS-DOS to RISC-OS.
  12214. 3.3
  12215. 5.   From within RISC-OS set the file type of your file to &DEA
  12216. (*SETTYPE ADFSName DEA).
  12217. 3.3
  12218. 6.   Start !Draw and drag the DXF file to its icon or into a !Draw
  12219. window.
  12220. 3.3
  12221. !Draw will ask you a question about the ‘units’ (scale) before redrawing
  12222. the image in the window. This may require some thought to get the
  12223. required effect. !Draw appears to get confused with some entries in DXF
  12224. files and refuse to load the file. Deleting the text in the original
  12225. picture may cure the problem. AutoSketch on the Archimedes can also
  12226. produce DXF type files for input into !Draw.
  12227. 3.3
  12228. •   ‘C’ Operating System calls (cont’d) − The following example program
  12229. shows how system commands can be invoked from a C-program. It was tested
  12230. under Acorn ANSI C version 2. The use of the function ‘system’ is part
  12231. of the proposed ANSI standard for C, although its exact implement-ation
  12232. is left up to the individual versions of C. The Acorn ‘ANSI C’ library
  12233. function ‘system’ returns a zero value if the command executes success
  12234. fully and non-zero if it fails. Problems will occur if the command being
  12235. executed over-writes the C-prog-ram (for example if the command starts
  12236. up a second C-program), but in the example both commands are ‘built-in’
  12237. and therefore do not overwrite the invok-ing program. In theory, the
  12238. *RMLoad command fails if there is not enough RMA, but in testing the
  12239. example, it worked even when the free RMA was configured to 0k.
  12240. 3.3
  12241. /* > c.systest */
  12242. 3.3
  12243. #include <stdlib.h>   /* General
  12244. 3.3
  12245.  utilities  */
  12246. 3.3
  12247. #include <stdio.h>   /* Input/output  
  12248. 3.3
  12249. */
  12250. 3.3
  12251. int main ()
  12252. 3.3
  12253. {3 .3
  12254. static char rmload[]=“rmload
  12255. 3.3
  12256. system:modules.memalloc“;
  12257. 3.3
  12258. static char screensave[]=
  12259. 3.3
  12260.  “screensave screenfile”;
  12261. 3.3
  12262. int result1,result2;
  12263. 3.3
  12264. result1=system(rmload);
  12265. 3.3
  12266. result2=system(screensave);
  12267. 3.3
  12268. printf(“Result1=%d, Result2=%d\n”
  12269. 3.3
  12270. ,result1,result2);
  12271. 3.3
  12272. return(0);
  12273. 3.3
  12274. }
  12275. 3.3
  12276. •   Dead modules − If you install a module which claims a vector and
  12277. then press the reset button, something very strange happens when you
  12278. want to *RMKill the module. Because the vector can’t be released, the
  12279. module isn’t killed properly. To let you know about this, RISC-OS puts
  12280. the dummy address DEADDEAD where you would expect the workspace address:
  12281. 3.3
  12282. *rmkill printkill
  12283. 3.3
  12284. Bad vector release
  12285. 3.3
  12286. *modules
  12287. 3.3
  12288. No   Position   Workspace Name
  12289. 3.3
  12290. 1   0380873C   00000000   UtilityModule
  12291. 3.3
  12292. 2   0381FB94   01800014   FileSwitch
  12293. 3.3
  12294. ...
  12295. 3.3
  12296. 27   0387EA48   00000000   SpriteUtils
  12297. 3.3
  12298. 28   01813BC4   DEADDEAD   PrintKey
  12299. 3.3
  12300. etc
  12301. 3.3
  12302. •   Definitive modem connections? The following connections work with
  12303. ArcTerm601, Hearsay and the Archive BBS for the WS3000 and SM2400
  12304. modems:
  12305. 3.3
  12306. Arc RX (2) to Modem TX (3)
  12307. 3.3
  12308. Arc TX (3) to Modem RX (2)
  12309. 3.3
  12310. Arc GND (5) to Modem GND (7, not 1)
  12311. 3.3
  12312. Arc RI (9) to Modem DCD (8)
  12313. 3.3
  12314. Arc CTS (8), DCD (1), and DTR(4) to Modem DTR (20)
  12315. 3.3
  12316. Arc RTS (7) to Modem RTS (4)
  12317. 3.3
  12318. Arc DSR (6) to Modem CTS (5)
  12319. 3.3
  12320. •   Digitisers? Who needs one, anyway ? We recently faced the problem of
  12321. how to get the company logo into a DRAW file, and came up with a
  12322. solution which may be useful to other people. It is most applicable to
  12323. images bounded largely by straight lines.
  12324. 3.3
  12325. First take the image and enlarge it repeatedly using a photocopier until
  12326. it fills more than a third of the screen of the monitor you are using.
  12327. Then make one more enlargement, onto the transparent acetate sheets used
  12328. for overhead projector foils. If you do not have a copier you will find
  12329. most high street copier services can do all this for you, probably for
  12330. less than a pound. Our copier will enlarge to 145% at a time.
  12331. 3.3
  12332. Now cut out the piece of acetate showing the image, and put it on your
  12333. monitor screen. You will find it sticks most satisfyingly. Enter DRAW
  12334. and register the coordinates of the corners of the image. You may want
  12335. to have a grid on the screen to ensure you line up the acetate image
  12336. with the edges of the screen. You can also check alignment by reading
  12337. the coordinates of points which should be the same distance from an edge
  12338. of the screen and adjusting them as necessary.
  12339. 3.3
  12340. We found this was much easier than transcribing even simple shapes by
  12341. eye, as it was hard to get the proportions right that way. It was also
  12342. much quicker than drawing a grid and transcribing coordinates from that.
  12343. Laurie van Someren, Aleph One Ltd
  12344. 3.3
  12345. •   Interdictor Flight Recorder! − It is possible to fly the plane on
  12346. your own, run or even record a demo flight. This can be done by altering
  12347. the !Run file in the !Interdictor directory. On the bottom line of this
  12348. directory is the ‘fly’ command. Its permutations are as follows:
  12349. 3.3
  12350. fly       (just fly the plane as usual)
  12351. 3.3
  12352. fly playback <filename>   (replay a demo flight from a file)
  12353. 3.3
  12354. fly record <filename>      (record the flight to a file)
  12355. 3.3
  12356. If you want an example of how this works, you can look at the !RunDemo
  12357. file in the Interdictor direct-ory. This file runs the demo file call
  12358. DemoFlight.
  12359. 3.3
  12360. •   Low Batteries? One reader noticed that after 15 months, his
  12361. Archimedes’ configuration settings began to change inexplicably e.g. the
  12362. loss of all disc drive icons in the desktop. Eventually, after various
  12363. problems (e.g. the Beebug Serial Link buffer setting kept changing) the
  12364. whole system finally froze. However, the problem was fully resolved by
  12365. replac-ing the batteries. So be warned. (Acorn recommend replacement
  12366. every 12 months.)
  12367. 3.3
  12368. •   MS-DOS Hard Disc Partitions − The easiest way of getting two hard
  12369. disc partitions for the PC Emulator is to get version 1.33, which can be
  12370. downloaded from the Archive BBS or SID. Alternatively send us a donation
  12371. to our charity pot along with an 800k formatted 3.5“ disc.
  12372. 3.3
  12373. •   Multi-tasking First Word Plus? If you rename the !Run file in the
  12374. !1stWord+ directory to !Boot then First Word Plus becomes multitasking.
  12375. Unfortunately, you cannot reach the disc, palette or task icons.
  12376. 3.3
  12377. •   Noisy Fans 1 − If you have a fan in your Archim-edes, you should not
  12378. disconnect it. The reason for this is that the fan will then be blocking
  12379. up the air vent and so the computer’s PSU will operate at too high a
  12380. temperature. If you want to reduce the noise of the fan, you should
  12381. either completely remove the fan or refer to the following hint.
  12382. 3.3
  12383. •   Noisy Fans 2 − I have looked at the physical design of the Archi
  12384. medes PSU and done a few temperature measurements and it is my belief
  12385. that you ought to have a fan fitted and working. So, what can you do to
  12386. reduce the annoying noise of the fans? Well, we have several Archimidi
  12387. here and the noise drove us to distraction so, being hardware oriented,
  12388. I looked at the infernal (sic) fan. Yes, I have found a way of shutting
  12389. it up, but before you get too excited, allow me to explain a little
  12390. more.
  12391. 3.3
  12392. These fans are most certainly not your average Scalectrix car 12volt
  12393. motor with a set of plastic blades stuck on the front! In fact, we
  12394. couldn’t have wished for a better headache − these fans (of which we’ve
  12395. even found two different manufacturers so far) consist of a transistor
  12396. circuit driving a coil assembly that is alternately fluxing a permanent
  12397. magnet within the plastic rotor. At the same time, the rotor is having
  12398. its rotational speed monitored by a hall effect switch, busily counting
  12399. the revolutions! How are we going to slow that down? The answer we came
  12400. up with was a small transistor circuit of our own that takes the 12v
  12401. D.C. input and feeds to the fan a suitably pulsed supply that allows the
  12402. fan to start but not reach full speed. Cunning, eh?!
  12403. 3.3
  12404. Yes, we had to make two slightly different versions of our circuit, as
  12405. the fans were not the same electrically. We’ll let you know how they get
  12406. on as we’re still testing them, but there no problems so far. Ray
  12407. Maidstone.
  12408. 3.3
  12409. If you want more technical info, drop Ray a line via the Archive office.
  12410. Ed.
  12411. 3.3
  12412. •   Presenter II Stacked Bar option − If one of the data sets (columns)
  12413. contains several NULL (0 or zero) entries then on the display, some of
  12414. the stack-ed bar may be displaced vertically downwards. This is easily
  12415. corrected by replacing the NULL entry with a very small value. E.g., if
  12416. the data maximum is 100 then a value of 0.1 or 0.05 will do the trick.
  12417. 3.3
  12418. •   Second floppy disk drive − If you want a second disc drive and don’t
  12419. need the a new front fascia for two drives, you can install an NEC 1036A
  12420. into the Archimedes, which can be obtained for around £50.
  12421. 3.3
  12422. You will also need to buy some ribbon cable, power leads and extra plugs
  12423. for the leads. Don’t forget to set the drive to operate as drive 1 and
  12424. to *Configure Floppies 2 on the Archimedes.
  12425. 3.3
  12426.  
  12427. • 80k of RMA and rising!  RMA stands for Relocatable Module Area.  In
  12428. English, this is the area of memory which some parts of the operating
  12429. system (modules) use as work space.  This is why when you first
  12430. initialise your computer you will find that your RMA takes over 80k of
  12431. memory.  For those of you who are curious, here is a guide to the memory
  12432. each module claims on power up:
  12433. 3.04
  12434.    Module      Workspace (bytes)
  12435. 3.04
  12436.    FileSwitch      2400
  12437. 3.04
  12438.    Desktop      528
  12439. 3.04
  12440.    SystemDevices   288
  12441. 3.04
  12442.    BBCEconet      80
  12443. 3.04
  12444.    InternationalKeyboard   528
  12445. 3.04
  12446.    Debugger      448
  12447. 3.04
  12448.    SoundChannels   8464
  12449. 3.04
  12450.    Sound Scheduler   8208
  12451. 3.04
  12452.    WaveSynth      1760
  12453. 3.04
  12454.    StringLib      8576
  12455. 3.04
  12456.    Perussion      8800
  12457. 3.04
  12458.    SpriteExtend   1296
  12459. 3.04
  12460.    Draw      272
  12461. 3.04
  12462.    FontManager   2832
  12463. 3.04
  12464.    WindowManager   7920
  12465. 3.04
  12466.    NetStatus      16
  12467. 3.04
  12468.    Podule      208
  12469. 3.04
  12470.    ADFS      656
  12471. 3.04
  12472.    FileCore%ADFS   12,464
  12473. 3.04
  12474.    HourGlass      1952
  12475. 3.04
  12476.    TaskManager   3760
  12477. 3.04
  12478.    PaletteUtil      3632
  12479. 3.04
  12480.    Filer      4993
  12481. 3.04
  12482.    ADFSFiler      2336
  12483. 3.04
  12484.    ShellCLI      1872
  12485. 3.04
  12486.    Total      84308
  12487. 3.04
  12488. RMA is also used to contain WIMP sprites (especially application icons
  12489. stored in their !Sprite files) and relocatable modules, which add extra
  12490. facilities to the ROM based operating system e.g. 65Tube provides BBC
  12491. emulation.  This means that as the Archimedes ‘sees’ and loads more
  12492. applications/modules the memory acquired by the RMA grows and can quite
  12493. easily reach 300k plus!
  12494. 3.04
  12495. Since there are several uses for the RMA, there are several ways of
  12496. reducing the memory it requires:
  12497. 3.04
  12498. a) Remove individual modules using the *RMKill command e.g. *RMKill
  12499. Percussion − this will only temporarily remove the facilities provided
  12500. by a module.
  12501. 3.04
  12502. b) Unplug unwanted modules using the *RMUnplug command e.g. *RMUnplug
  12503. BBCEconet − this will permanently remove the facilities provided by an
  12504. operating system ROM module − so if you don’t have Econet or don’t use
  12505. the Debugger then you can unplug the relevant modules and release their
  12506. workspace.  Note, you can reinvoke the facilities of a module by using
  12507. the *RMReInit command.
  12508. 3.04
  12509. c) Use the following BASIC V program to clear the RMA sprite area:
  12510. 3.04
  12511.    program segment missing
  12512. 3.04
  12513. d) If you have finished processing and saved all your work you could
  12514. press <ctrl-break> but this is rather drastic.
  12515. 3.04
  12516. • ArcTerm update − Hugo Fiennes has updated ArcTerm v6.01 so that it
  12517. works properly with the CET and CET+ standards.  An upgrade can be
  12518. obtained direct from Hugo Fiennes free of charge.
  12519. 3.04
  12520. • Arthur desktop − If any of you have changed over to RISC-OS but are
  12521. pining for the old Arthur desktop (!) then see if you can get hold of a
  12522. copy of Brainsoft’s Disk Transfer program.  This provides a modified ram
  12523. copy of the desktop with extra features added.  You will then be able to
  12524. access your old desktop diaries, etc.  Dave Woods.
  12525. 3.04
  12526. • ASCII BASIC programs − BASIC V can load and renumber an untokenised
  12527. text file with the *BASIC -load <filename> command (the same applies
  12528. with the -chain option).  Thus you don’t really need a BASIC to ASCII
  12529. convertor; you could just keep all your BASIC programs in ASCII, at
  12530. least while you develop them, and still be able to edit them using a
  12531. text editor, e.g. TWIN or !Edit.
  12532. 3.04
  12533. • Auto-booting applications − If you want a RISC-OS application to load
  12534. or run as soon as the disc is inserted then you should modify the !Boot
  12535. file in the application to execute the !Run file i.e. add the command
  12536. *Run <Obey$Dir>.!Run in the !Boot file.  This technique could be used,
  12537. for example, to automatically load the BASIC Editor when a development
  12538. disc is inserted.
  12539. 3.04
  12540. • Break key action − You can set the action of the <break> key using the
  12541. *FX 247,<n> command.  The value byte <n> alters <break> and modifiers of
  12542. it as follows:
  12543. 3.04
  12544.    Bits   Key Combination
  12545. 3.04
  12546.    0.1   <break>
  12547. 3.04
  12548.    2.3   <shift-break>
  12549. 3.04
  12550.    4.5   <ctrl-break>
  12551. 3.04
  12552.    6.7   <ctrl-shift-break>
  12553. 3.04
  12554. Each two bit number may take on one of these values:
  12555. 3.04
  12556.    Value   Effect
  12557. 3.04
  12558.    00   Act as <reset> key
  12559. 3.04
  12560.    01   Act as <escape> key
  12561. 3.04
  12562.    10   No effect
  12563. 3.04
  12564.    11   Undefined
  12565. 3.04
  12566. The default is *FX 247,1 which makes <break> act as if it were <escape>
  12567. and all other combinations cause a reset.
  12568. 3.04
  12569. • Desktop grey scale?  If you modify colours 0 or 7 (white or black)
  12570. using the desktop palette utility then the palette application will
  12571. attempt to interpolate the colours in between i.e. colours 1-6.  Try it
  12572. and see!
  12573. 3.04
  12574. • Don’t move your mouse!  Whilst waiting for a program to complete a
  12575. lengthy process (e.g. when the hourglass is on) it is best not to move
  12576. the mouse as keeping track of the mouse movements takes up processor
  12577. time.
  12578. 3.04
  12579. • Faster BASIC SWI’s − When using the SYS command within a BASIC V
  12580. program, it is quicker to use a number instead of a string.  e.g. SYS6
  12581. instead of SYS “OS_Byte”.  However, the best way to obtain the number
  12582. values is to use a BASIC variable and “OS_SWINumberFromString”.  This
  12583. increases speed while maintaining machine independence and readability. 
  12584. For example:
  12585. 3.04
  12586.    program segment missing
  12587. 3.04
  12588. • Insert/overwrite with !Edit − It is possible to toggle between insert
  12589. and overwrite mode in Edit by pressing <shift-f1>.
  12590. 3.04
  12591. • Mouse step − you can set the sensitivity of your mouse by using the
  12592. BASIC V MOUSE STEP command e.g. MOUSE STEP 4 means that the pointer will
  12593. move 4 O.S. pixels for every mouse pulse.  The ‘sensitivity parameter’
  12594. can take a zero or even a negative value, so that you can freeze the
  12595. mouse or even invert it!
  12596. 3.04
  12597. • Multiple entry PROC’s and FNs − You can have multiple entries to
  12598. procedures and functions, although it may not be good programming style. 
  12599. This is because lines beginning with DEF are not executed, so you can
  12600. have further DEFs within the body of a procedure/function, and enter at
  12601. these points with an appropriate call − this might be particularly
  12602. useful to have a first entry, set up some default parameters, and then
  12603. have entry to override them:
  12604. 3.04
  12605.    program segment missing
  12606. 3.04
  12607. • O.S. case sensitivity − Contrary to what has been said in the past,
  12608. the operating system is almost entirely case-insensitive, unlike BASIC,
  12609. and although the case of filenames and variable names is preserved it is
  12610. not significant.  Quotes are also generally unnecessary except when
  12611. including a space in a parameter.
  12612. 3.04
  12613. • Removing recursive directories (cont’d) − If you accidentally copy a
  12614. directory into itself then the best way to tidy the disc up is to create
  12615. a RAM disc and move the unwanted files into it (you can move a file by
  12616. dragging it into the filer window while holding the <shift> button
  12617. down).
  12618. 3.04
  12619. • Time for function keys − Function key strings are just treated as OS
  12620. variables called Key$<n>, where <n> is the key number.  This means that
  12621. all the commands relate to system variables can be used with function
  12622. keys e.g. *ShowKey$ will display key definitions.  *SetMacro Key$0
  12623. <Sys$Time> will make <f0> display the time and so on.
  12624. 3.04
  12625. • Using *GOS − You can use the *GOS command from the desktop to prevent
  12626. returning if you accidentally hit the <return> key.  Once you have
  12627. finished typing your *commands you can use the •Quit command to go back
  12628. to the desktop.
  12629. 3.04
  12630.  
  12631. •   Window resizing bugs/errors − The bug in Interactive help Archive
  12632. 2.11 page 8 is not a bug but a result of !Help setting a window work
  12633. area extent in less than a multiple of four. The program is in C so I
  12634. can’t edit it. I discovered this when writing my own software. When a
  12635. window was stretched to its full extent it would not grow smaller in the
  12636. y direction until you moved in to the left. R.D.
  12637.  
  12638. •   *WIPE with mouse − In BASIC, (or at the operating system prompt for
  12639. that matter. Ed.) if you have the pointer ON (*POINTER) and do *WIPE *,
  12640. a mouse pointer appears enabling you to use <se-lect> to delete the file
  12641. and <menu> or <adjust> to keep the file.
  12642. 3.5
  12643. •   Alerion cheat  − For those who have the RISC-OS version of Alerion,
  12644. you can select the wave you wish to play by pressing the letters <A> to
  12645. <O> while on the title screen.
  12646. 3.5
  12647. •   BASIC Editor bugs − There is a bug or two in the Basic Editor v1.00
  12648. that comes on the Applications Disc 2. If you exactly fill the first
  12649. line so that the cursor jumps to the next line, and then press return,
  12650. the screen looks something like this:
  12651. 3.5
  12652. 10 REM This is meant to be right over to the edge
  12653. 3.5
  12654. 11 C
  12655. 3.5
  12656. 20 xxxxxxxxxxxx
  12657. 3.5
  12658. 30 xxxx
  12659. 3.5
  12660. If you then press the <page down> key, the comp-uter will freeze.
  12661. 3.5
  12662. Another bug, whose circumstances cannot be so readily repeated, occurs
  12663. when pressing the <cursor down> key causing the program to shoot off the
  12664. top of the screen, and nothing will bring it back again.
  12665. 3.5
  12666. Both of these are ‘mild’ bugs because pressing <reset> followed by
  12667. typing *BASIC and OLD and EDIT restores everything back to it original
  12668. state.
  12669. 3.5
  12670. •   BASIC first please − If you want your computer to start up in BASIC
  12671. instead of the desktop, use *CON. LAN. 4 and then do a <ctrl-break>.
  12672. This also means that the full computer memory is available to your
  12673. program. If you go to BASIC with <f12> to get a star command and then
  12674. typing BASIC, you only get the memory available that has been allocated
  12675. to the next application under the task display (651516 bytes). The
  12676. reason for this is that BASIC is being run as the next task within the
  12677. desktop environment. This can be seen by typing QUIT which will drop you
  12678. back into the desktop with everything as it was before.
  12679. 3.5
  12680. The other way to get the full memory available is to press <shift-ctrl-
  12681. f12> which will drop you out of the desktop completely, closing all
  12682. tasks. This drops you into the operating system, so typing BASIC and
  12683. then QUIT brings you back to the operating system prompt, not into the
  12684. desktop.
  12685. 3.5
  12686. (This is one of those things which, according to Adrian is “obvious”,
  12687. but to those of us who never reads manuals, it is news! So, the next
  12688. time you discover something which someone else thinks is “obvious”, send
  12689. it in to us as an H&T. Ed.)
  12690. 3.5
  12691. •   CTRLing VDU scrolling − You can use the <scroll lock> key on the
  12692. Archimedes to stop the computer printing (either to the screen or
  12693. printer). Another method of doing this is to hold down the <shift> and
  12694. <ctrl> keys. However, if you just hold the <ctrl> key down then you can
  12695. slow down the speed of printing to about a 20th of it original speed. 
  12696. 3.5
  12697. •   Database routine − If you’ve written a database in BASIC e.g. an
  12698. address book, it can be difficult to find a name unless you stick to a
  12699. format where all entries are in upper case, or lower case apart from the
  12700. initial letters. This little routine which uses 104 bytes is the
  12701. solution. As well as accepting upper or lower case it also will accept
  12702. the character “#” as a single character wildcard .
  12703. 3.5
  12704. It is identical to the BASIC command.
  12705. 3.5
  12706. INSTR(string,substring,start of search)
  12707. 3.5
  12708. Except the variables A%, $B% and $C% are declared before X=USR(code) is
  12709. called, i.e.
  12710. 3.5
  12711. $B%=“main string”
  12712. 3.5
  12713. $C%=“substring”
  12714. 3.5
  12715. A%=start of search
  12716. 3.5
  12717. X=USR(code)
  12718. 3.5
  12719. There is an example program with the listing.
  12720. 3.5
  12721. 160 DEFPROCass
  12722. 3.5
  12723. 170 FORopt=0TO3 STEP3
  12724. 3.5
  12725. 180    P%=code
  12726. 3.5
  12727. 190   [ OPT opt
  12728. 3.5
  12729. 200   STMFD R13!,{r1-r12 ,R14} ;store
  12730. 3.5
  12731.  registers. not R0
  12732. 3.5
  12733. 210   MOV R5,R0      ;start of search
  12734. 3.5
  12735. 220   MOV R0,#0    ;reset R0 (A%) for
  12736. 3.5
  12737.  return
  12738. 3.5
  12739. 230   LDRB R7,[R2,#0] ;load R7 with
  12740. 3.5
  12741.  first byte of $C%
  12742. 3.5
  12743. 240   CMP R7,#13   ;is it a CR?
  12744. 3.5
  12745. 250   BEQ end      ;i.e. null sub-
  12746. 3.5
  12747. string. exit to BASIC
  12748. 3.5
  12749. 260
  12750. 3.5
  12751. 270   .nomatch
  12752. 3.5
  12753. 280   MOV R4,#0  ;initialise counters
  12754. 3.5
  12755. 290   MOV R3,#0
  12756. 3.5
  12757. 300   .nextchar
  12758. 3.5
  12759. 310   LDRB R6,[R1,R5]  ;get byte of
  12760. 3.5
  12761.  string
  12762. 3.5
  12763. 320   CMP R6,#13   ;is it CR ie end
  12764. 3.5
  12765.  of string
  12766. 3.5
  12767. 330   BEQ end      ;if yes, substring
  12768. 3.5
  12769.  not found. exit
  12770. 3.5
  12771. 340   AND R6,R6,#95   ;AND to ignore
  12772. 3.5
  12773.  case
  12774. 3.5
  12775. 350   LDRB R7,[R2,R4] ;first byte of
  12776. 3.5
  12777.  substring
  12778. 3.5
  12779. 360   CMP R7,#13      ;is it a CR?
  12780. 3.5
  12781. 370   SUBEQ R0,R5,R3  ;yes i.e. end
  12782. 3.5
  12783.  of substring
  12784. 3.5
  12785. 380                   ;R5-R3 gives
  12786. 3.5
  12787.  position in string
  12788. 3.5
  12789. 390   ADDEQ R0,R0,#1  ;plus 1. First
  12790. 3.5
  12791.  char=0
  12792. 3.5
  12793. 400   BEQ end         ; and exit
  12794. 3.5
  12795. 410                  
  12796. 3.5
  12797. 420   AND R7,R7,#95   ;AND to ignore
  12798. 3.5
  12799.  case
  12800. 3.5
  12801. 430   ADD R5,R5,#1    ;increment
  12802. 3.5
  12803.  counters for next chars
  12804. 3.5
  12805. 440   ADD R4,R4,#1
  12806. 3.5
  12807. 450   CMP R7,#3       ;is it a hash?
  12808. 3.5
  12809.  If so make equal
  12810. 3.5
  12811. 460   MOVEQ R6,R7
  12812. 3.5
  12813. 470   CMP R6,R7      ;ARE bytes equal
  12814. 3.5
  12815. 480   ADDEQ R3,R3,#1  ;yes − get next
  12816. 3.5
  12817.  sub string char
  12818. 3.5
  12819. 490   BEQ nextchar
  12820. 3.5
  12821. 500   BNE nomatch     ;no try next
  12822. 3.5
  12823.  string char
  12824. 3.5
  12825. 510   .end
  12826. 3.5
  12827. 520   LDMFD R13!,{r1-r12 ,R15};restore
  12828. 3.5
  12829. registers. R0 has INSTR
  12830. 3.5
  12831. 530   ]
  12832. 3.5
  12833. 540 NEXT
  12834. 3.5
  12835. 550 ENDPROC
  12836. 3.5
  12837. •   Disappearing menus − After selecting an option on a menu, the menu
  12838. disappears. To prevent this: instead of using <select> to select option,
  12839. use <adjust>, and the menu will then stay on the screen.
  12840. 3.5
  12841. •   Drawing with Outline fonts - If you possess Acorn DTP, you can use
  12842. the !FontEd public domain program to create !Draw paths of the
  12843. individual letters. This is done by dragging the character in the main
  12844. !FontEd window into the !Draw document window. Once transferred, the
  12845. letter can be manip-ulated just like any other drawing e.g. rotated,
  12846. stret-ched, filled, etc. With a little patience, some very effective
  12847. titles can be created.
  12848. 3.5
  12849. •   DTP memory − A couple of hints to give extra memory when using Acorn
  12850. DTP with a 1M machine: load the printer driver first and then quit
  12851. before entering DTP. Only the modules are used for printing, which are
  12852. left installed after you quit. Secondly, the use of screen mode 1 uses
  12853. only 24k of memory and since it is a four colour mode, it gives a better
  12854. grey scale than Mode 0.
  12855. 3.5
  12856. •   E-Type bug − There is a bug in ‘All Tracks’ option of E-Type. If you
  12857. press hard on the brakes when the time reaches 0:01 the program
  12858. sometimes goes bonkers and when you are placed on the new track, your
  12859. Trip Score increases.
  12860. 3.5
  12861. •   External ST506 drives − If you add an external hard drive to an old
  12862. 440 or 310, you may find that the whole system dies completely for no
  12863. apparent reason. The problem is that if the external drive is powered up
  12864. before the computer, a small voltage can be produced within the computer
  12865. so when the power suplly on the computer tries to power up, it sees this
  12866. voltage, panics and shuts down again! The simple solution is to power up
  12867. the computer first and then the external drive.
  12868. 3.5
  12869. When switching off, work on the “last in, first out” principle and
  12870. switch off the drive first. This is good practice since, if the drive is
  12871. left switched on, as the computer powers down, extraneous signals on the
  12872. drive’s data and control lines could conceivably be interpreted as
  12873. something nasty like, “ Please wipe track 0, sector 0” and you end up
  12874. with a “Bad Free Space Map”! (I’m sure that is Somebody’s Law.)
  12875. 3.5
  12876. •   Interdictor Cheat − It is possible to alter your landing pad in
  12877. Interdictor. Edit StateSave via !Edit. Go down to the 10th number and
  12878. alter it. Note that Landing pad 2 is actually Landing pad 1 and so alter
  12879. the 10th number to a 1 and so on. Also note that there are 7 runways,
  12880. the 7th being known as the number 6. This might sound confusing but
  12881. really it’s not!
  12882. 3.5
  12883. •   Large hard drives on A410/1? − Someone asked us to find out whether
  12884. it was possible to put hard drives with more than 8 heads onto an A410/
  12885. 1. All we have been able to find out is that, to get the extra head
  12886. select line, you need to change links LK12 and LK13. Whether the
  12887. software will cope, we do not know. If anyone has any success with it,
  12888. perhaps they would let us know.
  12889. 3.5
  12890. •   Virus protection − If you are passing discs around, especially PD
  12891. discs, guard yourself against the virus. When you receive or pass on a
  12892. disc, you run the risk of your machine picking or up a virus or logic
  12893. bomb.
  12894. 3.5
  12895. Passing on files: Format an unused disc and copy only the files you wish
  12896. to send. Alternatively, wipe the disc (*Wipe * FR~C), copy the files and
  12897. run my disc wiping program (see below). This is needed because deleting
  12898. a file does not erase the data on the disc; it just causes the computer
  12899. to forget about it. The data can be retrieved by anyone with a disc
  12900. sector editor, so run the program if you want to thoroughly scrub the
  12901. unused parts of the disc.
  12902. 3.5
  12903. Receiving files: Copy across only those files which you need. Try not to
  12904. use the desktop as some logic bombs can sit in an application’s !Boot
  12905. file and spring out at you when you open their directory viewer.* After
  12906. copying, the original disc should be cleared by reformatting.
  12907. 3.5
  12908.  10 REM >Eradicate
  12909. 3.5
  12910.  20 REM Guards against the Virus and
  12911. 3.5
  12912.  accidental giveaways of data
  12913. 3.5
  12914.  30 REM Erases totally the unused parts
  12915. 3.5
  12916.  of a disc
  12917. 3.5
  12918.  40 REM PUBLIC DOMAIN by Sandie Goh
  12919. 3.5
  12920.  50 REM Version 1.21 (20-Sep-1989)
  12921. 3.5
  12922.  60 :
  12923. 3.5
  12924.  70 MODE 3:OFF:DIM blankspace 409600
  12925. 3.5
  12926.  80 PRINT“Disc Eradicator”
  12927. 3.5
  12928.  90 PRINT“===============”‘
  12929. 3.5
  12930. 100 PRINT“PUBLIC DOMAIN by Sandie Goh,
  12931. 3.5
  12932. Version 1.21 (20-Sep-1989)“‘
  12933. 3.5
  12934. 110 PRINT“Erases totally the unused
  12935. 3.5
  12936.  parts of a disc.“
  12937. 3.5
  12938. 120 PRINT“HELPS guard against viruses,
  12939. 3.5
  12940.  logic bombs etc.“‘
  12941. 3.5
  12942. 130 PRINT“Insert disc to be cleaned in
  12943. 3.5
  12944.  drive 0 and press a key.“‘
  12945. 3.5
  12946. 140 *FX 15,1
  12947. 3.5
  12948. 150 IF GET
  12949. 3.5
  12950. 160 PRINT“Compacting, to collect free
  12951. 3.5
  12952.  space into a single block.“
  12953. 3.5
  12954. 170 REPEAT
  12955. 3.5
  12956. 180   *COMPACT 0
  12957. 3.5
  12958. 190   SYS“ADFS_FreeSpace”,“0” TO total,
  12959. 3.5
  12960.  biggest
  12961. 3.5
  12962. 200 UNTIL biggest=total
  12963. 3.5
  12964. 210 PRINT“Saving dummy files into the
  12965. 3.5
  12966.  free space to wipe anything there.“
  12967. 3.5
  12968. 220 REM Use unlikely filenames to avoid
  12969. 3.5
  12970.  clashes
  12971. 3.5
  12972. 230 IF biggest>409600 THEN
  12973. 3.5
  12974. 240   OSCLI (“SAVE ZZDelONN12 ”+STR$~
  12975. 3.5
  12976. blankspace+“ +64000”)
  12977. 3.5
  12978. 250   biggest=biggest-409600
  12979. 3.5
  12980. 260 ENDIF
  12981. 3.5
  12982. 270 OSCLI (“SAVE XXDelONN12 ”+STR$~
  12983. 3.5
  12984. blankspace+“ +”+STR$~biggest)
  12985. 3.5
  12986. 280 PRINT“Deleting the dummy files to
  12987. 3.5
  12988.  release the space.“‘
  12989. 3.5
  12990. 290 *REMOVE ZZDelONN12
  12991. 3.5
  12992. 300 *DELETE XXDelONN12
  12993. 3.5
  12994. 310 PRINT“I now pronounce this disc
  12995. 3.5
  12996.  clean.“
  12997. 3.5
  12998. *If you don’t believe me, I was myself the victim of a booby-trapped
  12999. disc. After mounting a disc I picked up from a friend, I copied its
  13000. contents across to my hard disc, only to find that it (the winchester)
  13001. was now blank! Believing the problem to be a bug in the desktop or
  13002. chance disc failure, I restored the hard disc and tried again − the same
  13003. thing happened again, but this time when I did a *Compact 4.
  13004. 3.5
  13005. I tried everything and was just about to give up and complain to Acorn
  13006. when a friend phoned me with the same problem. It turns out that he too
  13007. had a copy of the disc I had picked up and I immediately became
  13008. suspicious. Further research showed that the disc contained an invisible
  13009. program which sat in the machine waiting for an opportune moment, then
  13010. zapped the Winchester with a *Wipe :4.* FR~C.
  13011. 3.5
  13012. The subtlety of the program makes it even more deadly − the “error”
  13013. occurs when you write to the hard disc using the desktop, so you are
  13014. lead to think (as I was) that a bug or disc error is responsible. So be
  13015. warned. Guard against the virus.
  13016. 3.5
  13017.  
  13018. •   !chars − which is available as !1stchars with FWPlus version 2 and
  13019. is also available on SID + Archive BBS + various PD discs, can be used
  13020. for “mousing” text into !Draw applications.
  13021. 3.6
  13022. •   !Draw − You can use the cursor keys for fine positioning when
  13023. drawing Bezier curves or lines.
  13024. 3.6
  13025. •   !Madness − I was always very disappointed with this Demo − until I
  13026. looked at the !RunImage file and found a variable called madspeed% −
  13027. guess what changing it to 1 does? Rob Davison
  13028. 3.6
  13029. •   !system on floppies − Those of you without hard discs will have
  13030. !system on various of your floppies. The trouble is that when you change
  13031. to other discs, even if they have !system on them, you will be asked to
  13032. insert the disc containing !system that the com-puter saw first of all.
  13033. To get round this, double click on !system on the current disc before
  13034. trying to launch applications from the disc.
  13035. 3.6
  13036. •   Art Nouveau − Fills approximating to graduated, logarithmic,
  13037. circular etc can easily be ‘designed’ and saved to disc. For example:
  13038. 3.6
  13039. Approx circle fill − Set a small grid size and switch it on. Draw
  13040. several concentric filled circles, selecting each shade as you go. Smear
  13041. the edges with ‘colour merge’ if you don’t want the bands of colour to
  13042. show. Pick it up as a brush and use with: brush, effects1, distort x (or
  13043. y). Some of the effect that Pro-Artisan and Atelier have as features can
  13044. be cobbled together with a little effort using Art Nouveau (at half the
  13045. price!). D P Allen.
  13046. 3.6
  13047. •   Beware the SUM! − If you rely on indentation in your programs to
  13048. keep a check on the structure of the various loops, beware that SUM(A())
  13049. will cause an extra indent. Is there any way round this? Fred Hartley,
  13050. Hayes.
  13051. 3.6
  13052. •   Booting − When booting the Archimedes up it is tempting to just
  13053. refer to applications assuming their path starts at the root ($). e.g.
  13054. !Edit − can be installed on the desktop using just !Edit in a boot file.
  13055. 3.6
  13056. However, this will not ensure the appropriate system variable is set up
  13057. with the full pathname. Again using !Edit as example, you would get just
  13058. − Edit$Dir = !Edit
  13059. 3.6
  13060. To avoid this put the full name in the desktop boot file, e.g.
  13061. 3.6
  13062. *Run adfs:HardDisc.$.!Edit
  13063. 3.6
  13064. Only of much use if, like me, you decide to set the directory yourself
  13065. while using Desktop (despite what Acorn advise!). Ian Pollock
  13066. 3.6
  13067. •   Graph-Box − superb program but I find it very annoying that it
  13068. ‘dies’ when you close the window. The following changes will give
  13069. Graphbox an icon on the iconbar. It will only ‘die’ when you click
  13070. <menu> followed by ‘quit’ as Edit and Draw etc. This lets you clear some
  13071. valuable desktop space to write a letter or whatever. while still having
  13072. Graphbox available on the icon bar.
  13073. 3.6
  13074. *BASIC
  13075. 3.6
  13076. LOAD “!GraphBox.!RunImage”
  13077. 3.6
  13078.  220 WHEN 3:PROCclosew(!q%):IF!q%=
  13079. 3.6
  13080. w_graphbox% THEN mainclosed%=TRUE
  13081. 3.6
  13082.  560 quit%=FALSE:mainclosed%=FALSE
  13083. 3.6
  13084. 4590 WHEN0:PROCclosew(w_graphbox%)
  13085. 3.6
  13086. :quit%=TRUE
  13087. 3.6
  13088. 5291 Icon%=sprites%:!Icon%=TRUE:
  13089. 3.6
  13090. DIM Spritename% 14:$Spritename%=
  13091. 3.6
  13092. “!graphbox”:Icon%!4=0:Icon%!8=0:
  13093. 3.6
  13094. Icon%!12=64:Icon%!16=68:Icon%!20=
  13095. 3.6
  13096. (&311A OR (7<<28))
  13097. 3.6
  13098. 5292 Icon%!24=Spritename%:Icon%!28=1:
  13099. 3.6
  13100. Icon%!32=12:SYS “Wimp_CreateIcon”
  13101. 3.6
  13102. ,,Icon% TO graph_iconbar%
  13103. 3.6
  13104. 5445 READ t$:m_iconbar%=FNcrmenu(t$)
  13105. 3.6
  13106. 5447 DATA “#Graphbox,Info>w_pinfo%,
  13107. 3.6
  13108. Quit“
  13109. 3.6
  13110. 5710 REM quit%=TRUE
  13111. 3.6
  13112. 6395 IF mh%=-2 AND mb%=4 OR mb%=1024
  13113. 3.6
  13114.  AND mi%=graph_icnbar% THEN PROCgetw
  13115. 3.6
  13116. (w_graphbox%):PROCfront(w_graphbox%
  13117. 3.6
  13118. ,420,150):mainclosed%=FALSE
  13119. 3.6
  13120. 7375 WHEN-2:IFmi%=graph_icnbar% THEN
  13121. 3.6
  13122.  PROCpop(m_iconbar%,-1)
  13123. 3.6
  13124. 8219 IF menu%=m_iconbar% my%+=64
  13125. 3.6
  13126. 8545 WHEN m_iconbar%:IF !mlist%=1
  13127. 3.6
  13128.  THEN quit%=TRUE
  13129. 3.6
  13130. 16505 IFmainclosed%=TRUE PROCfront
  13131. 3.6
  13132. (w_graphbox%,420,150):
  13133. 3.6
  13134. mainclosed%=FALSE
  13135. 3.6
  13136. SAVE “!GraphBox.!RunImage”
  13137. 3.6
  13138. NOTE: Graphbox claims what you have in your next slot up to a max of
  13139. 640k but as the program needs only a minimum of around 200k to run,
  13140. there’s space for a very big graph! Before loading Graphbox, drag the
  13141. ‘next’ slot down to about 330k to free some more space. You can edit the
  13142. !run file and change the -max to reconfigure it more permanently. Rob
  13143. Davison
  13144. 3.6
  13145. •   Installing Alerion − Here are the steps you must take in order to
  13146. install RISC-OS Alerion onto your hard disc:
  13147. 3.6
  13148. (i) create a RAM disc with at least 432k
  13149. 3.6
  13150. (ii) copy the !Alerion directory into the RAM disc
  13151. 3.6
  13152. (iii) alter the RAM disc !Boot file in the !Alerion directory so that it
  13153. reads:
  13154. 3.6
  13155. IconSprites <Obey$Dir>.!Sprites
  13156. 3.6
  13157. (iv) also alter the !Run file so that reads:
  13158. 3.6
  13159. Set Alerion$Dir <Obey$Dir>
  13160. 3.6
  13161. RMClear
  13162. 3.6
  13163. RMLoad MemAlloc
  13164. 3.6
  13165. RMSize 320k
  13166. 3.6
  13167. ScreenSize 160k
  13168. 3.6
  13169. RMKill MemAlloc
  13170. 3.6
  13171. Run <Alerion$Dir>.!RunImage
  13172. 3.6
  13173. (v) copy the !Alerion directory from the RAM disc to your hard disc.
  13174. 3.6
  13175. •   Rounding Errors − Try typing P.STR$(0.6) in BASIC. If you are
  13176. putting the string of a variable into a writeable menu option when
  13177. programming a wimp system and this rounding error comes up, the
  13178. resulting string can overwrite some of the data structure for your menu.
  13179. The result is often an “Abort on data transfer”! This can be quite hard
  13180. to track down so be careful. DIMming the block to 5 bytes will stop a
  13181. crash but will leave the user with a 0.6666666669 to edit instead of
  13182. 0.6. This can be a bit disconcerting. To solve it, set @% to round to
  13183. e.g. 2 decimal places before doing the STR$ and reset @% afterwards −
  13184. see 400 series BASIC Guide pp277-278 for details. Rob Davison
  13185. 3.6
  13186. •   Screen modes & memory claiming − If your program has a proper RISC-
  13187. OS front end, it can change modes without worrying about screen memory.
  13188. If there is enough in ‘free’ and ‘next’ it will be shunted to screen
  13189. memory and the mode selected. Rob Davison
  13190. 3.6
  13191. •   Synthesiser MIDI modes − The answer to Gerald Fitton’s problem
  13192. (issue 2.12 p 18) that his Korg synthesiser plays all channels no matter
  13193. what he does, is that his synthesiser is not in the correct MIDI mode.
  13194. 3.6
  13195. All MIDI devices operate under modes. These are as below:
  13196. 3.6
  13197.    MIDI mode 1:   OMNI On/Poly
  13198. 3.6
  13199.    MIDI mode 2:   OMNI On/Mono
  13200. 3.6
  13201.    MIDI mode 3:   OMNI Off/Poly
  13202. 3.6
  13203.    MIDI mode 4:   OMNI Off/Mono
  13204. 3.6
  13205. OMNI On/Off selects whether the device receives on all MIDI channels
  13206. (OMNI On) or only on one MIDI channel (OMNI Off). Poly means that the
  13207. device will be able to play two or more notes at the same time and Mono
  13208. means that it will only be able to play one at a time. The Korg will
  13209. almost certainly be in MIDI mode 1, which is how most synthesisers are
  13210. set up when they are sent from the shop. The answer is to change the
  13211. MIDI mode to 3 or 4 and to set the Korg to receive on the same MIDI
  13212. channel as Maestro is sending.
  13213. 3.6
  13214. •   Wimp Resizing − I have written a program which needs a large area of
  13215. memory as store for data. The program works in the desktop and claims
  13216. memory via SYS “Wimp_SlotSize”. Initially, I used the BASIC statement
  13217. “END=HIMEM + value%” but this also changes the address of HIMEM. Loops,
  13218. procedures and local variables are stored just below HIMEM so my data
  13219. was being overwritten. I tried lowering HIMEM immediately afterwards but
  13220. things still went wrong so I use “Wimp_SlotSize” directly. BASIC is
  13221. ignorant of the new memory area and it can therefore be safely used as a
  13222. store. Use a variable “Claimer%’ and exit the Wimp_Poll loop if it’s not
  13223. zero then call Wimp_SlotSize. R.D.
  13224. 3.6
  13225.  
  13226. •   !Draw − I used to find it difficult to get to grips with !Draw
  13227. because I couldn’t visualise the final layout. However, if you use the
  13228. ‘new view’ option together with ‘zoom’ you can get a WYSIWYG view. Not
  13229. only this, but it is possible to manipulate the major view from the
  13230. minor view. L Kennedy.
  13231. •   Acorn DTP − This may seem obvious but I only just figured it out! 
  13232. When printing documents from Acorn DTP, I found that footers (in
  13233. particular) wouldn’t print.  I spent ages looking through the DTP manual
  13234. trying to figure out why. I suddenly occurred to me that it might be the
  13235. printer driver and sure enough, it was.  The page size for A4 paper has
  13236. margins set all round, in particular a bottom margin of 20 mm is set,
  13237. and it is this which is ‘clipping’ out the footers.  Set this to 0 (say)
  13238. and the problem is solved. Kevin Quinn
  13239. 3.7
  13240. •   BASIC programs from !Edit − When in !Edit you can actually run BASIC
  13241. programs etc from within the desktop without pressing <f12>. I happened
  13242. to come across this accidentally. Press <menu> on the Edit icon and
  13243. click on New Task Window. This will produce a task window on the screen
  13244. and will allow you to execute the BASIC environment without leaving the
  13245. desktop and allow you to format disks also allowing you to nearly multi-
  13246. task formatting disks, you can suspend the task get on with something
  13247. then resume the task and the formatter will continue where it left off!
  13248. Press-ing <menu> from within the task window will give a list of
  13249. commands (anyone know what link/unlink does??) Graham Bisset
  13250. 3.7
  13251. •   Changing your batteries and keeping your CMOS RAM settings intact.
  13252. If you connect a 100 microfarads capacitor in series with a 100 ohm
  13253. resistor and clip them across the battery connec-tions, (+ve of the
  13254. capacitor to +ve of the battery) you will have about 70-100 seconds to
  13255. change your batteries without losing your CMOS settings. The computer
  13256. should be kept switched off throughout the operation. J W E Jones
  13257. 3.7
  13258. •   Current directory path − With reference to Richard Skemp’s query in
  13259. Archive 3.5 p43 about getting the full pathname of the current direc
  13260. tory, the ‘easiest on your fingers’ method uses system variables. It was
  13261. difficult to implement and required a fair amount of digging in the
  13262. manuals but it does demonstrate the use of *Set, *SetMacro and *SetEval,
  13263. so here it is:
  13264. 3.7
  13265. Place the following two lines into an Obey file, either via *Build or by
  13266. using !Edit. Save it in the library directory of your current disc as
  13267. “Path” and set the filetype to be an Obey file (*SetType %.Path Obey).
  13268. Execute it with *Path. Subsequent use of *Path will have other effects −
  13269. see later.
  13270. 3.7
  13271. Set Path$ $
  13272. 3.7
  13273. SetMacro Alias$Path Dir %%0||mIf “%%0” = “” Then Set Path$ $ Else If
  13274. “%%0”LEFT1 = “$” Then Set Path$ %%0 Else SetEval Path$ Path$ + “.%%0”
  13275. 3.7
  13276. How it works: “Set Path$ $” sets up a system variable called “Path$” and
  13277. assigns to it the string value “$”, which you will recognise as being
  13278. the name of the root directory.
  13279. 3.7
  13280. “SetMacro Alias$Path É” creates a macro system variable called “Path”.
  13281. 3.7
  13282. When “*Path [<directory path>]” is executed, the macro first selects the
  13283. directory specified in <dir-ectory path> by way of the old *Dir command.
  13284. 3.7
  13285. If no directory path is specified, the old *Dir selects the root
  13286. directory. The macro examines <directory path> and, if it is a null
  13287. string (“”), it sets Path$ to “$”.
  13288. 3.7
  13289. If the leftmost character of <directory path> is “$”, the macro replaces
  13290. Path$ with <directory path>.
  13291. 3.7
  13292. If <directory path> is not null and does not have “$” as its leftmost
  13293. character, the macro appends a full stop and the string specified in
  13294. <directory path> to whatever Path$ contains.
  13295. 3.7
  13296. Path$ thus always contains the full pathname of the currently selected
  13297. directory (CSD).
  13298. 3.7
  13299. You can actually redefine *Dir itself to do this, so that you don’t have
  13300. to remember to use *Path ins-tead of *Dir. In other words, it becomes
  13301. transparent.
  13302. 3.7
  13303. All you do is to change the first occurrence of Path (in “Alias$Path”)
  13304. to Dir (i.e. “Alias$Dir”) and change the “Dir %%0” to “%Dir %%0”. The
  13305. extra % sign in front of Dir is to enable the original version of Dir to
  13306. be used (FORTH programmers will recognise this as smudging). I have not
  13307. actually tried this, but it should work!!
  13308. 3.7
  13309. How to use it:
  13310. 3.7
  13311. Use “Path” wherever you would use “Dir”. In fact, do not use “Dir” at
  13312. all (more on this later). Also use full pathnames, as opposed to
  13313. wildcarded path-names. This is not really necessary, but it looks
  13314. neater.
  13315. 3.7
  13316. The command “*Path Basic.Games.Adventure”, executed from the root
  13317. directory, would set sub-directory “Adventure” as the CSD, exactly in
  13318. the same way as “*Dir Basic.Games.Adventure” would do.
  13319. 3.7
  13320. Notes:
  13321. 3.7
  13322. 1. No leading asterisks. You may enter them, but they are superfluous,
  13323. as these lines are sent direct to the CLI.
  13324. 3.7
  13325. 2. The use of two double bar characters in ||m. This is so that Obey
  13326. will insert it in the macro variable as |m, instead of as ASCII 13.
  13327. 3.7
  13328.    Alias$Path is a multi-line (well, a 2-line) com-mand. This is quite
  13329. acceptable, provided each line is separated by a carriage return (ASCII
  13330. 13, or |m).
  13331. 3.7
  13332.    Note that the (*)Dir command is at the start of the macro. Putting it
  13333. at the end causes errors related to the (*)IfÉThenÉElse construct.
  13334. 3.7
  13335. 3. Double percentage character in %%0. This is so that Obey will insert
  13336. it in the macro variable as %0, instead of attempting to evaluate a
  13337. (non-existent) parameter when the command *SetMacro is executed.
  13338. 3.7
  13339. 4. Double quote marks where the parameter is to be evaluated as a
  13340. string. This is so that string evaluation will proceed correctly.
  13341. 3.7
  13342. 5. Use of upper and lower case. In general they are interchangeable at
  13343. will.
  13344. 3.7
  13345. (*)Eval supports a number of operators (see p.394 in the Archimedes User
  13346. Guide). Some are in the form of ordinary words, such as LEFT, MOD, AND,
  13347. OR, etc, and others are symbols, such as *, +, >>, etc. The ordinary
  13348. words must be in UPPER CASE, otherwise they are not recognised.
  13349. 3.7
  13350. Disc-related commands seem to be quite happy when offered system
  13351. variables as pathnames. If an application sets up its own pathname as,
  13352. say, “Application$Dir”, you can make the first line of a BASIC program.
  13353. 3.7
  13354. 10 REM > <Application$Dir>.Program
  13355. 3.7
  13356. and be confident that the BASIC command SAVE will put it in the right
  13357. place, as the Filer (I think) evaluates <Application$Dir> correctly.
  13358. Also *Eval Application$Dir (without the <>) also returns the value of
  13359. the variable.
  13360. 3.7
  13361. You can get the value of the system variable into a BASIC variable with
  13362. the following FN:
  13363. 3.7
  13364. buffer_length%=255
  13365. 3.7
  13366. DIM buffer% buffer_length%
  13367. 3.7
  13368. PRINT FNevalOS(“Application$Dir”) : REM NB!! no < >
  13369. 3.7
  13370. END
  13371. 3.7
  13372.  
  13373. 3.7
  13374. DEF FNevalOS(A$) LOCAL T%,L%
  13375. 3.7
  13376. SYS “OS_EvaluateExpression”, A$,buffer%,buffer_length% TO ,T%,L%
  13377. 3.7
  13378. IF T%=0 THEN = L% : REM integer result
  13379. 3.7
  13380. buffer%?L%=13
  13381. 3.7
  13382. =$buffer%     : REM string result
  13383. 3.7
  13384. Anton Mans, Durban
  13385. 3.7
  13386. •   Double height in Fortran − The following short FORTRAN routine can
  13387. be used for the Archimedes to ‘tart up’ screen output. It is a routine
  13388. for printing text in double height on the screen and uses OS_Word call
  13389. 10 to read the system font bit pattern. A VDU23 call is used to define a
  13390. pair of characters consisting of the upper and lower halves of the input
  13391. character. These two characters are then printed, one above the other,
  13392. giving a double-height character. It’s very useful for printing headings
  13393. in screen output and doesn’t require messing about with special fonts
  13394. (I’m going to go on to that next!).
  13395. 3.7
  13396. I claim no originality for the overall method. A routine in BBC BASIC to
  13397. do this was published in Beebug some years ago (I forget who the author
  13398. was), but I thought it was worth publicising a FORTRAN version of it in
  13399. Archive because I don’t think the translation is immediately obvious and
  13400. readers may not have been aware of the technique anyway. It should be
  13401. easily extendible to double width, quadruple height, etc.
  13402. 3.7
  13403. Rather than just give the bare routine, I have produced a short program
  13404. incorporating it, that writes out a couple of strings. Much use is made
  13405. of the ‘$’ format to suppress CRLF when characters are being sent to the
  13406. VDU driver. The routine is more complex than the BASIC equivalent for
  13407. two reasons. Firstly, although there is a word ‘LEN’ in FORTRAN, it only
  13408. seems to give the maximum length of any given string, i.e. the length
  13409. that it is originally declared to be (e.g. CHARACTER*78 TXT; LEN(TXT)
  13410. gives 78). So in SUBROUTINE DOUBLE, there are a few lines to find the
  13411. length of the string passed to it by counting backwards from the maximum
  13412. length until a non-space character is reached. N.B. this will fail if
  13413. the string is put into the argument list, e.g. CALL DOUBLE(10,20,‘Hi
  13414. there’). Secondly, since individual bytes in memory are not accessible
  13415. to FORTRAN, you have to get the result back as three (4-byte) integers,
  13416. and use IAND with ISHFT to gain access to the bytes.
  13417. 3.7
  13418.      PROGRAM DHTEST
  13419. 3.7
  13420. C    *******************************
  13421. 3.7
  13422. C    A DEMONSTRATION PROGRAM FOR
  13423. 3.7
  13424.  PRINTING DOUBLE HEIGHT
  13425. 3.7
  13426. C    TEXT IN ANY MODE (NOT 7) ON THE
  13427. 3.7
  13428.  ACORN ARCHIMEDES,
  13429. 3.7
  13430. C    IN ACORNSOFT FORTRAN. USES ACORN
  13431. 3.7
  13432.  EXTENSIONS: OSWORD, ISHFT, IAND
  13433. 3.7
  13434. C    BY R.D.WRIGHT
  13435. 3.7
  13436. C    *******************************
  13437. 3.7
  13438.      CHARACTER*78 TXT
  13439. 3.7
  13440.      WRITE(6,’($,2A)’)CHAR(22)
  13441. 3.7
  13442. ,CHAR(12)
  13443. 3.7
  13444.      WRITE(6,*)’DOUBLE HEIGHT TEST’
  13445. 3.7
  13446.      TXT=’THIS IS A VERY LONG TEST
  13447. 3.7
  13448.  STRING’
  13449. 3.7
  13450.      CALL DOUBLE(10,20,TXT)
  13451. 3.7
  13452.      TXT=‘AND MORE’
  13453. 3.7
  13454.      CALL DOUBLE(10,23,TXT)
  13455. 3.7
  13456.      STOP ‘END OF DEMO’
  13457. 3.7
  13458.      END
  13459. 3.7
  13460.      SUBROUTINE DOUBLE(ICOL,IROW,TXT)
  13461. 3.7
  13462.      CHARACTER*78 TXT
  13463. 3.7
  13464.      INTEGER BLOCK(0:2)
  13465. 3.7
  13466.      INTEGER B(0:8)
  13467. 3.7
  13468.      N=79
  13469. 3.7
  13470.   10 N=N-1
  13471. 3.7
  13472.      IF (TXT(N:N).EQ.‘ ’) GO TO 10
  13473. 3.7
  13474.      DO 20 I=1,N
  13475. 3.7
  13476.      BLOCK(0)=ICHAR(TXT(I:I))
  13477. 3.7
  13478.      CALL OSWORD(10,BLOCK)
  13479. 3.7
  13480.      DO 2010 J=1,3
  13481. 3.7
  13482.      BLOCK(0)=ISHFT(BLOCK(0),-8)
  13483. 3.7
  13484.      B(J)=IAND(BLOCK(0),?IFF)
  13485. 3.7
  13486. 2010 CONTINUE
  13487. 3.7
  13488.      B(4)=IAND(BLOCK(1),?IFF)
  13489. 3.7
  13490.      DO 2020 J=5,7
  13491. 3.7
  13492.      BLOCK(1)=ISHFT(BLOCK(1),-8)
  13493. 3.7
  13494.      B(J)=IAND(BLOCK(1),?IFF)
  13495. 3.7
  13496. 2020 CONTINUE
  13497. 3.7
  13498.      B(8)=IAND(BLOCK(2),?IFF)    
  13499. 3.7
  13500.      WRITE(6,‘($,10A)’)CHAR(23),CHAR(
  13501. 3.7
  13502. 240),CHAR(B(1)),CHAR(B(1))
  13503. 3.7
  13504.      +,CHAR(B(2)),CHAR(B(2)),CHAR(B(3
  13505. 3.7
  13506. )),CHAR(B(3)),
  13507. 3.7
  13508.      +CHAR(B(4)),CHAR(B(4))
  13509. 3.7
  13510.      WRITE(6,‘($,10A)’)CHAR(23),CHAR(
  13511. 3.7
  13512. 241),CHAR(B(5)),CHAR(B(5))
  13513. 3.7
  13514.      +,CHAR(B(6)),CHAR(B(6)),CHAR(B(7
  13515. 3.7
  13516. )),CHAR(B(7))
  13517. 3.7
  13518.      +,CHAR(B(8)),CHAR(B(8))
  13519. 3.7
  13520.      IX=ICOL+I-1
  13521. 3.7
  13522.      IYU=IROW
  13523. 3.7
  13524.      IYL=IROW+1
  13525. 3.7
  13526.      WRITE(6,‘($,8A)’)CHAR(31),CHAR(
  13527. 3.7
  13528. IX),CHAR(IYU),CHAR(240)
  13529. 3.7
  13530.      +,CHAR(31),CHAR(IX),CHAR(IYL)
  13531. 3.7
  13532. ,CHAR(241)
  13533. 3.7
  13534.   20 CONTINUE
  13535. 3.7
  13536.      RETURN
  13537. 3.7
  13538.      END
  13539. 3.7
  13540. R.D.Wright
  13541. 3.7
  13542. •   Easy ‘C’ Compilation I − While working on a C program it can become
  13543. quite tedious to type in the same parameters every time you want to
  13544. compile the latest version of your program. One way to get around this
  13545. is to use something like “C-Front” from Mitre which allows you to
  13546. compile directly from the desktop. A simpler and cheaper way is to use
  13547. an ‘Obey’ file which will do the job for you. Below is an example that
  13548. has been written to make the compilation of C (Release 3) programs
  13549. easier. Using this method, you can still work from the desktop editing
  13550. your text in !Edit, saving it, then pressing <f12>. You can then use the
  13551. following command:
  13552. 3.7
  13553. *c <inputname> [outputname]
  13554. 3.7
  13555. It will then automatically Compile and Link your new masterpiece!
  13556. 3.7
  13557. The program has been fully commented to aid understanding. It should be
  13558. saved as an ‘Obey’ file in the ‘Library’ directory under the name “C”.
  13559. Obviously it should be customised to suit your own directory layout and
  13560. preferred compiler options.
  13561. 3.7
  13562. | ‘C’ Obey file, Compiler & Linker -
  13563. 3.7
  13564.  16/02/90 Mark Taylor
  13565. 3.7
  13566. | Syntax : “*C <inputname> [output
  13567. 3.7
  13568. name]“
  13569. 3.7
  13570. | Where ‘inputname’ is the name of
  13571. 3.7
  13572.  the file to be compiled
  13573. 3.7
  13574. | and ‘outputname’ is the name of the
  13575. 3.7
  13576.  output file, e.g. !RunImage, etc.
  13577. 3.7
  13578. |
  13579. 3.7
  13580. | Check for parameters. If none
  13581. 3.7
  13582.  present then error and output
  13583. 3.7
  13584.  a message.
  13585. 3.7
  13586. if “%0” = “” then error 0 Error in
  13587. 3.7
  13588.  ‘C’ Compiler & Linker. Syntax : *C |<inputname|> [outputname]
  13589. 3.7
  13590. |
  13591. 3.7
  13592. | Set system variable ‘ipname$’ to
  13593. 3.7
  13594.  first parameter after the “c”.
  13595. 3.7
  13596. Set ipname$ %0
  13597. 3.7
  13598. |
  13599. 3.7
  13600. | Check for a second and if there is
  13601. 3.7
  13602.  one set ‘opname$’ to that
  13603. 3.7
  13604.  variable,
  13605. 3.7
  13606. | else set ‘opname$’ equal ‘ipname$’.
  13607. 3.7
  13608. If “%1” > “” then Set opname$ %1 else
  13609. 3.7
  13610.  Set opname$ %0
  13611. 3.7
  13612. |
  13613. 3.7
  13614. | Compile with ‘ipname$’, do NOT Link
  13615. 3.7
  13616.  (-c). ANSI 3 Standard method.
  13617. 3.7
  13618. cc -c <ipname$> -I$.RISC-OSLib
  13619. 3.7
  13620. |
  13621. 3.7
  13622. | Link ‘ipname$’ with standard lib-
  13623. 3.7
  13624. raries and output as ‘opname$’.
  13625. 3.7
  13626. link -o <opname$> o.<ipname$> $.RISC
  13627. 3.7
  13628. -OSLib.o.RISC-OSLib $.CLib.o.Stubs
  13629. 3.7
  13630. |
  13631. 3.7
  13632. | Echo finishing message.
  13633. 3.7
  13634. Echo File ‘<ipname$>’ successfully
  13635. 3.7
  13636.  compiled as ‘<opname$>’.
  13637. 3.7
  13638. | Unset the temporary variables.
  13639. 3.7
  13640. Unset ipname$
  13641. 3.7
  13642. Unset opname$
  13643. 3.7
  13644. Below is a cut down version that is not quite as sophisticated but is
  13645. easier to understand.
  13646. 3.7
  13647. | ‘C’ Obey file, Compiler & Linker -
  13648. 3.7
  13649.  16/02/90 Mark Taylor
  13650. 3.7
  13651. | Syntax : “*C name” Where ‘name’ is
  13652. 3.7
  13653.  the name of the file to be
  13654. 3.7
  13655.  compiled.
  13656. 3.7
  13657. cc -c %0 -I$.RISC-OSLib
  13658. 3.7
  13659. link -o %0 o.%0 $.RISC-OSLib.o.RISC
  13660. 3.7
  13661. -OSLib $.CLib.o.Stubs
  13662. 3.7
  13663. Echo File ‘%0’ successfully compiled.
  13664. 3.7
  13665.  
  13666. 3.7
  13667. •   Easy ‘C’ Compilation II − This is not a new idea but it is still
  13668. worth mentioning. To speed up the compilation of ‘C’ programs it is a
  13669. good idea to copy the necessary files to a RAM disc. I have written an
  13670. Obey file to achieve this. It is best saved into the Library directory
  13671. so that it may be called from the star (*) prompt any time. The way the
  13672. file is set up at the moment means that it will copy files from the hard
  13673. disc to a RAM disc of some 1.5M. The RAM disc is set up using the
  13674. “MemAlloc” module (this can be found in the !Lander directory on the
  13675. Apps2 disc of RISC-OS). It should be copied in the mod-ules directory of
  13676. the !System folder. The directory layout reflects a fairly standard
  13677. system under release 3 of Acorn’s ANSI C.
  13678. 3.7
  13679. Important!
  13680. 3.7
  13681. You must remember to copy the files you have changed during your session
  13682. back to disc before switching off!
  13683. 3.7
  13684. | Obey file to set up RAM disc as the
  13685. 3.7
  13686.  working disc for ‘C’ 18/1/90
  13687. 3.7
  13688. |
  13689. 3.7
  13690. | First create large RAM disc: 1.5MB!
  13691. 3.7
  13692. RMensure MemAlloc 0.11 RMload :4.$.
  13693. 3.7
  13694. !System.modules.memalloc
  13695. 3.7
  13696. RAMFSSize 1500
  13697. 3.7
  13698. RMensure SharedClibrary 3.50 RMload
  13699. 3.7
  13700. :4.$.!System.modules.clib
  13701. 3.7
  13702. RMensure FPEmulator 2.80 RMload :4.$.
  13703. 3.7
  13704. !System.modules.FPE280
  13705. 3.7
  13706. |
  13707. 3.7
  13708. CDir RAM:$.RISC-OSlib
  13709. 3.7
  13710. CDir RAM:$.Clib
  13711. 3.7
  13712. CDir RAM:$.User
  13713. 3.7
  13714. Copy ADFS:$.RISC-OSlib.* RAM:$.RISC-
  13715. 3.7
  13716. OSlib.* ~cr~v
  13717. 3.7
  13718. Copy ADFS:$.CLib.* RAM:$.Clib.* ~cr~v
  13719. 3.7
  13720. Copy ADFS:$.User.* RAM:$.User.* ~cr~v
  13721. 3.7
  13722. CDir RAM:$.Library
  13723. 3.7
  13724. Copy ADFS:$.Library.link RAM:$.Library.* ~c~v
  13725. 3.7
  13726. Copy ADFS:$.Library.cc RAM:$.Library.* ~c~v
  13727. 3.7
  13728. Copy ADFS:$.Library.squeeze RAM:$.Library.* ~c~v
  13729. 3.7
  13730. | Copy my single letter Obey file ‘C’.
  13731. 3.7
  13732. Copy ADFS:$.Library.c RAM:$.Library
  13733. 3.7
  13734. .* ~c~v
  13735. 3.7
  13736. |
  13737. 3.7
  13738. |Define function keys.
  13739. 3.7
  13740. k.1c
  13741. 3.7
  13742. k.2cc -c
  13743. 3.7
  13744. k.3-I$.RISC-OSLib
  13745. 3.7
  13746. k.4link -o
  13747. 3.7
  13748. k.5$.RISC-OSLib.o.RISC-OSLib
  13749. 3.7
  13750. k.6$.CLib.o.Stubs
  13751. 3.7
  13752. k.7Squeeze -v
  13753. 3.7
  13754. | Delete all unwanted object files!
  13755. 3.7
  13756. k.12wipe o.* ~c
  13757. 3.7
  13758. |Perform *RAM at the end!
  13759. 3.7
  13760. RAM
  13761. 3.7
  13762. |Select $.User directory!
  13763. 3.7
  13764. Dir $.User
  13765. 3.7
  13766. Echo RAM Disc now setup correctly
  13767. 3.7
  13768.  (DIR=$.User)
  13769. 3.7
  13770. Echo
  13771. 3.7
  13772. free
  13773. 3.7
  13774. Filer_OpenDir RAM:$.User.c
  13775. 3.7
  13776. •   Music Maestro please! − The !Maestro applic-ation provided by Acorn
  13777. is very powerful, if very complex. However, it still has a number of
  13778. short-comings relative to the old Island Logic’s “Music System” for the
  13779. BBC micro. These include the inability to delete whole bars or several
  13780. bars; the inability to handle triplets; the inability to change Tempo
  13781. within a passage. Also, entering scores by dragging icons is extremely
  13782. slow and laborious and finally, “Music System” counted notes in a bar
  13783. and, when the right time had been used, automatically entered a bar-
  13784. line. This not only saved an operation, it also provided a cross-check
  13785. on typing accuracy: the unexpected appearance of a bar-line indicated a
  13786. mistake somewhere.
  13787. 3.7
  13788. !Maestro’s !RunImage file has been modified to permit changing of the
  13789. Tempo during a passage. This required a new sprite, placed in the space
  13790. in the top right corner, next to the hemi-demi-semi-quaver rest; ‘M’ for
  13791. Metronome seemed to be a reasonable choice. This sprite can be picked
  13792. up, just like the others, and placed above the appropriate bar-line.
  13793. When it is ‘clicked’ to fix it in position, it changes into the crotchet
  13794. symbol followed by “=<num>”, where <num> is a number from 40 to 210,
  13795. representing the Tempo as selected by the Tempo sub-menu from the main
  13796. Maestro menu. The numbers (of beats per minute) are given on page 1810
  13797. of the Programmer’s Reference Manual.
  13798. 3.7
  13799. During these investigations, a few small errors were noticed in the
  13800. Programmer’s Reference Manual (RISC-OS Edition). In Vol.4, under Music
  13801. Files:
  13802. 3.7
  13803. p.1809 “Maestro” is followed by “Line-feed”, &0A (not &0D)
  13804. 3.7
  13805. Music Data: Not “4*8 length of queue of notesÉ” but “5*8” because the
  13806. length is written to file as an integer variable, FINE%(C%) (as in DC al
  13807. fine!), so it consists of one byte (&40:integer) followed by 4 bytes
  13808. (value).
  13809. 3.7
  13810. p.1811 Attributes: Clef Bit 5 is unused Bits 6 & 7 are (Stave−1), range
  13811. 0−3. The attributes as defined in !Maestro. !RunImage lines 28900−29020
  13812. agree with those obtained by a *DUMP of a Music file. Alan Quayle
  13813. 3.7
  13814. •   Shift Caps Lock will give you capitals normally but will enable
  13815. lower case characters to be typed by holding down the shift key − very
  13816. useful when writing BASIC programs. Fred Lee
  13817. 3.7
  13818. •   SID − There is a mail-server on the SID database and so if you can
  13819. use E-MAIL (e.g. if you are a student at University, like me) then you
  13820. can mail it at SIDInfo@uk.co.acorn with a message contain-ing the word
  13821. ‘help’ and it will mail you a file telling you how to download stuff. 
  13822. It only has the free PD stuff though (obviously). The advantages of this
  13823. service work both ways − the SID machine can schedule the replies in
  13824. non-peak times and you are not using lots of on-line time down-loading.
  13825. Kevin F. Quinn
  13826. 3.7
  13827. •   TinyDirs − it may be obvious to most of you butÉ The TinyDirs
  13828. program not only allows directories to be installed on the icon bar but
  13829. allows applications to be as well. After all they are only directories
  13830. really. The application can then be run by clicking on the icon on the
  13831. icon bar in just the same way as any other application. This means you
  13832. can have your favourite programs on the icon bar without having to worry
  13833. about how to install them there. The TinyDirs program will also cope
  13834. with more than one directory. (A friend was running a new copy of
  13835. TinyDirs each time he wanted a new directory installed.) If you just
  13836. drag the icon for the directory you want installed onto one of those
  13837. already there it will be added to the list. Andrew Ling.
  13838. 3.7
  13839. •   Turkish ‘i’ − There is a minute error in the char-acter set supplied
  13840. as “Latin3” on the Archimedes which, according to Acorn’s manual,
  13841. corresponds to ISO 8859/3 covering German, Spanish, Turkish etc.
  13842. Character 185 is supposed to be the Turkish lower case ‘i’, i.e. like
  13843. the English ‘i’ but without the dot. (The Mac has let me down for once −
  13844. no Turkish ‘i’! Ed.) Instead, it replicates the standard Latin ‘i’.
  13845. 3.7
  13846. To overcome this, insert the following in a boot file:
  13847. 3.7
  13848. *echo <23><185><0><0><56><24><24>
  13849. 3.7
  13850. <24><60><0>
  13851. 3.7
  13852. John Morgan
  13853. 3.7
  13854. •   Working on a 1Mbyte machine − When loading applications within the
  13855. desktop especially on a 1Mb machine, always call up the task display and
  13856. reduce the size of the next slot to as low as the machine will allow,
  13857. some applications will allow you to set it to 8k and they will just grab
  13858. as much memory as they need, however some will report ‘App need XXXk to
  13859. start’ so change the slot to about XXX+20k for workspace. If you do this
  13860. then the application can only grab as much memory as it needs. However,
  13861. if you leave say 640k in the next and you click on an application then
  13862. its likely that the application will grab about 600k or so leaving
  13863. precious little for other programs, data etc Users of 2Mb+ machines
  13864. don’t have the problem, but they still need to be careful of memory
  13865. grabbing applications!  Graham Bisset
  13866. 3.7
  13867.  
  13868. •   Auto-Booting on Startup − The following tip is of particular use to
  13869. users of hard disks.
  13870. 3.8
  13871. With so many extensions to RISC-OS being avail-able, most notably the
  13872. Outline Font Manager, it can be inconvenient if your applications can’t
  13873. find them and even worse if the first !System directory that is seen is
  13874. on a floppy.
  13875. 3.8
  13876. The simplest solution to this is to put !Fonts and !System in the root
  13877. directory of your hard disk and then open the root directory as your
  13878. first action.
  13879. 3.8
  13880. However, if the same action has to be performed repeatedly, then the
  13881. computer must be able to do it for you and it can.
  13882. 3.8
  13883. First you should create a command file called !Boot in Edit. This should
  13884. contain something like:
  13885. 3.8
  13886. adfs::4.$.!System
  13887. 3.8
  13888. adfs::4.$.!Fonts
  13889. 3.8
  13890. DESKTOP
  13891. 3.8
  13892. This will then initialise the system and font paths before starting the
  13893. desktop. To make it run on startup, you must configure the system to
  13894. execute the !boot file, this is done from an operating system * prompt
  13895. by:
  13896. 3.8
  13897. *configure boot
  13898. 3.8
  13899. *configure drive 4
  13900. 3.8
  13901. *opt 4,3
  13902. 3.8
  13903. The last option sets the current drive to execute the !boot file, rather
  13904. than attempting to run it as a BASIC program.
  13905. 3.8
  13906. This is not the end of the startup. When you invoke the desktop, it is
  13907. possible have one or more applications run automatically. To run a
  13908. single application, just append the application path on the end of the
  13909. DESKTOP command, for example:
  13910. 3.8
  13911. DESKTOP adfs::4.$.!Edit
  13912. 3.8
  13913. This will startup the desktop with Edit on the menu bar. To initialise
  13914. more than one application, you specify a text file which lists all the
  13915. applications that you wish to start.
  13916. 3.8
  13917. DESKTOP -File adfs::4.$.Startup
  13918. 3.8
  13919. The file Startup might contain the following list of files:
  13920. 3.8
  13921. adfs::4.$.!Draw
  13922. 3.8
  13923. adfs::4.$.!Edit
  13924. 3.8
  13925. adfs::4.$.!Paint
  13926. 3.8
  13927. This will then enter the desktop and start Draw, Edit and Paint
  13928. automatically. One word of warning, if you are limited to 1 Mb, be
  13929. careful as it would be very easy to use up all the available memory.
  13930. 3.8
  13931. Further customisation could be had by adding RMload commands to the !Run
  13932. file of !System to automatically load modules (such as NewModes) and
  13933. Filer_OpenDir pathname to the !Run files of applications in the startup
  13934. file to automatically open directory viewers. Phil Kitching
  13935. 3.8
  13936. •   BasicEdit − For users of the Data Store !Basic-Edit application:
  13937. Because this application uses the DSUtil module to alter the operation
  13938. of the mouse pointer it is not possible to run desktop programs
  13939. successfully from Edit without returning to the desktop first. This,
  13940. however, has the disadvantage that programs are more difficult to debug:
  13941. when a program ends it returns to the desktop and all the variables are
  13942. lost. A few simple changes to the !BasicEdit.!RunImage program, however,
  13943. seem to provide a satisfactory remedy. Insert near the start of the
  13944. program the following function key definitions:
  13945. 3.8
  13946. *KEY 2 *BEUtilOff|M*BASIC|MOLD|M
  13947. 3.8
  13948. RUN|M
  13949. 3.8
  13950. *KEY 3 *BEUtilOn|MEDIT .|M
  13951. 3.8
  13952. Then to run any program from the Edit screen simply press <f1> once and
  13953. <f2> once. If the prog-ram uses the Wimp, the desktop will reappear as
  13954. it was before you ran !BasicEdit with the new program running as well.
  13955. After the program ends, a “command window” will appear where you can use
  13956. LVAR or any other BASIC commands. To return to the Edit screen where you
  13957. left it, simply press <f3>. Hugh Eagle
  13958. 3.8
  13959. •   Battery changing − You don’t have to bother with adding capacitors
  13960. etc as mentioned last month. All you need to do is leave the computer
  13961. switched on while changing the batteries (but mind your fingers on the
  13962. fan!). There is no danger involved, as the mains is totally enclosed,
  13963. and it will not harm the machine. Mike Harrison.
  13964. 3.8
  13965. •   C programming − When writing desktop applications, put —DATE— in the
  13966. version string. So, if you forget to update the version number when
  13967. modifying the source files, it doesn’t really matter because when the
  13968. info is given from the menu, you can then find out what date the file
  13969. was compiled. R Bunnett.
  13970. 3.8
  13971. •   Closing the Edit window using <adjust> (instead of <select>) the
  13972. source directory is opened after the window has been closed. Holding the
  13973. <shift> key down simultaneously, will cause the directory viewer to be
  13974. opened without closing the Edit window (this allows you to drag-save the
  13975. file into the same directory, but with a different name). This is also
  13976. true for Draw and Paint.
  13977. 3.8
  13978. •   Double clicking problems − Double clicking on an application
  13979. installed on the icon bar by !TinyDirs can result in the application
  13980. running twice. This can have the confusing result that when you quit the
  13981. application a second copy of it immediately appears in its place.
  13982. 3.8
  13983. I have found a somewhat cumbersome solution to this problem which is to
  13984. include the following code in the WimpPoll loop:
  13985. 3.8
  13986. WHEN 17 : IF block%!4<>TaskId% AND block%!16=&400C2 THEN
  13987. 3.8
  13988. PROCInsertCR(block%+28)
  13989. 3.8
  13990. dummy$=$(block%+28)
  13991. 3.8
  13992. IF dummy$=TaskName$ THEN
  13993. 3.8
  13994. quit%=TRUE
  13995. 3.8
  13996. ENDIF
  13997. 3.8
  13998. ENDIF
  13999. 3.8
  14000.    .
  14001. 3.8
  14002.    .
  14003. 3.8
  14004. DEF PROCInsertCR(mem%)
  14005. 3.8
  14006. LOCAL I%
  14007. 3.8
  14008. I%=mem%
  14009. 3.8
  14010. REPEAT
  14011. 3.8
  14012. I%+=1
  14013. 3.8
  14014. UNTIL ?I%=0
  14015. 3.8
  14016. ?I%=13
  14017. 3.8
  14018. ENDPROC
  14019. 3.8
  14020. When the first application receives the message that is broadcast when a
  14021. new application starts (i.e. it receives reason code 17 with
  14022. block%!16=&400C2) and it finds that the new task has the same name
  14023. (TaskName$) as itself, it sets quit%=TRUE which makes the application
  14024. quit at the end of the poll loop.
  14025. 3.8
  14026. Note that when each application starts, it receives the message
  14027. broadcast by itself, hence the com-parison of block%!4 (which holds the
  14028. handle of the sender of the message) with TaskId% to prevent the task
  14029. from shutting itself down!
  14030. 3.8
  14031. Note also that the little procedure PROCInsertCR seems to be necessary
  14032. to convert the string at block%+28 from a zero terminated string to a
  14033. normal &0D terminated one. (Can anyone explain please RISC-OS’s
  14034. infatuation with these wretched zero-terminated strings ... and to say
  14035. that it’s because C or Unix, or whatever, uses them is no answer!) Hugh
  14036. Eagle
  14037. 3.8
  14038. •   Filer_OpenDir − The command ‘Filer_Open Dir’ may be used for any
  14039. file path. This includes ‘filing systems’ created using a system
  14040. variable (e.g. System$Path) may be referred to as the filing system
  14041. ‘system:’. Some ‘filing systems’ are one direction only (e.g. printer:).
  14042. The command can also use SystemDevices’ own ‘filing systems’:
  14043. 3.8
  14044.    kbd: / rawkd:   the keyboard
  14045. 3.8
  14046.    null:   the ‘null device’
  14047. 3.8
  14048.    printer:   the printer
  14049. 3.8
  14050.    serial:   the serial port
  14051. 3.8
  14052.    vdu: / rawvdu:   the screen
  14053. 3.8
  14054.    netprint:   the network printer
  14055. 3.8
  14056. Examples: dragging a file onto the view opened by:
  14057. 3.8
  14058. *Filer_OpenDir printer: will spool it to the printer
  14059. 3.8
  14060. *Filer_OpenDir vdu: will send it to the vdu driver (try it with a text
  14061. file)
  14062. 3.8
  14063. *Filer_OpenDir null: <shift> dragging will ‘move’ a file to null: i.e.
  14064. delete it
  14065. 3.8
  14066. •   FormEd Update − Users who have downloaded the !FormEd template
  14067. editor from Acorn’s SID board (also available on shareware disc 20)
  14068. might like to know how to put back the ‘sprite routines’.
  14069. 3.8
  14070. The version of !FormEd refered to has a !Help file stating a date of 16-
  14071. May-89, and a ReadMe file stating version 1.00, but shows version 1.01
  14072. and date of 23-May-89 in its Info window. The ReadMe file shows that
  14073. this is an unsupported Acorn application.
  14074. 3.8
  14075. The !Help file states ‘Some previous versions of FormEd used to provide
  14076. facilities for editing sprites. These are now provided only in the
  14077. !Paint application’, also that when a sprite file is dragged onto the
  14078. FormEd icon on the iconbar, a window will display the sprites. In the
  14079. supplied state, no window is opened and you do not know what your sprite
  14080. names are, or even if you have loaded the correct file, until you define
  14081. an icon as a named sprite which you hope is in the file!
  14082. 3.8
  14083. I was having problems with not enough memory on a 1Meg machine for
  14084. !Paint, !FormEd, the sprite files and the templates being built. (It IS
  14085. possible with very careful setting of the ’Free’ and ‘Next’ bars in the
  14086. Task Manager, but you can’t have any printer drivers etc). An examina
  14087. tion of the !FormEd reveal-ed that by removing the REM statements from
  14088. just 2 lines the sprite routines were again available.
  14089. 3.8
  14090. Load the !RunImage for !FormEd and LIST lines 2270 and 3080. Edit those
  14091. lines to remove the REM before PROCspriteinfo in each, so that the lines
  14092. are as shown below:
  14093. 3.8
  14094. 2270 WHEN &FF9:PROCloadsprites (f$)
  14095. 3.8
  14096.  :PROCspriteinfo
  14097. 3.8
  14098. 3080 PROCloadsprites(FNstring0(q%
  14099. 3.8
  14100. +44)):PROCspriteinfo
  14101. 3.8
  14102. Save the file back to the disk. When a sprite file is dragged to the
  14103. FormEd icon, a sprite window is shown and the sprite editing routines
  14104. appear to work OK (although !Paint is more powerful). Douglas Potter
  14105. 3.8
  14106. •   GraphBox − Maybe this is an obvious point to some users but it took
  14107. me a while to discover. Graphs imported into !Draw can be disassembled
  14108. to a remarkable degree (using ungroup) right down to facets of
  14109. individual 3D bars. This allows extensive re-orienting, re-colouring
  14110. options which can avoid some of the problems with dark colours and
  14111. overlaps when colour printing on a dot matrix printer. John Wann
  14112. 3.8
  14113. •   Hardware developer’s tool − On the monthly program disk is a utility
  14114. (‘SVCBAS’) which is very useful for hardware developers. It patches
  14115. BASIC so that memory indirection operators (? and !) operate in
  14116. supervisor mode. This allows quick ‘tweaking’ of hardware devices while
  14117. testing. Documentation is minimal, since those who are likely to need it
  14118. should not need any! Mike Harrison.
  14119. 3.8
  14120. •   Maestro − There are (I think!) several errors in the description of
  14121. the !Maestro file format on pages 1809 to 1813 of the PRM:
  14122. 3.8
  14123. a)   in the ‘Music data’ the number of bytes of gate data is given, not
  14124. the number of gates as the PRM says
  14125. 3.8
  14126. b)   the number of bytes of gate data is preceded by &40
  14127. 3.8
  14128. c)   each of the next eight words (which give the length in bytes of the
  14129. queues of note/rest data for the eight channels) is also preceded by &40
  14130. 3.8
  14131. d)   in the ‘Stave data’, the number of music staves is reduced by 1
  14132. (i.e. if there are 4 music staves this is recorded as 3)
  14133. 3.8
  14134. e)   in the descriptions of the ‘Gate Attributes’, the binary represen
  14135. tations of the bottom few bits of each byte are given with the least
  14136. significant bit first. Thus where the ‘Clef’ description says “Bits 0 −
  14137. 2 : 001 binary” it means that bits 0 and 1 are 0 and bit 2 is 1.
  14138. 3.8
  14139. f)   within the ‘Clef’ attribute data, the stave number (minus 1) is
  14140. given in bits 6 and 7, not bits 5 and 6. Hugh Eagle
  14141. 3.8
  14142. •   Problems with an Epson LQ1050? When printing from Impression, !Draw,
  14143. etc using the !PrinterDM application, the 360 x 360 dpi mode may cause
  14144. spurious characters to be printed, which results in a poor quality
  14145. printout. The reason for this is that the firmware in the Epson printer
  14146. does not support the [Esc]+ control sequence which is nec-essary to set
  14147. a line feed of 1/360th of an inch. In order to get this option working
  14148. you will need a new version of the printer’s ROM. This can be purch-ased
  14149. from Applied Technology Ltd. David Crofts
  14150. 3.8
  14151. •   Re-inking your ink-cartridge − It is possible to re-ink an ink-
  14152. cartridge for an HP-Deskjet Plus printer and probably other inkjet
  14153. printers by buying one of the inks listed below and then using a syringe
  14154. to insert the ink through a hole on the top of the cartridge. (a)
  14155. Fountain pen ink (Pelikan), (b) Diadye ink (photo-shop), (c) Rotring
  14156. air-brush ink. Tony Hopstaken
  14157. 3.8
  14158. •   Rotor passwords − Lee Thake has sent in the passwords for Rotor, but
  14159. in case you would rather not know, here they are in very simple coded
  14160. form so that once you have the first password, you will be able to work
  14161. out the others. QJU, HBH, MJQ, TMZ, NFX, BXF, UOU, FOE.
  14162. 3.8
  14163. •   Sparkplug − We have a lot of questions about how to decompress
  14164. programs such as PCDir which appear on our program and Shareware discs.
  14165. Let me try to explain in more detail.
  14166. 3.8
  14167. The reason the programs are compacted is that there would not be enough
  14168. room on the disc for the uncompacted version. Thus, if you are to uncom-
  14169. pact them, you need to do so onto another (prefer-ably blank) disc. If
  14170. you have two drives or a hard disc on your computer, the job is easier
  14171. then if you are trying to do it on a single drive, so I will do it the
  14172. hard way first.
  14173. 3.8
  14174. Insert a blank disc in the drive and open its filer window. Remove this
  14175. disc and insert the Program Disc (or Shareware disc, or whatever) in the
  14176. drive and open its filer window. If you have not already done so,
  14177. install !sparkplug onto the icon bar by double-clicking on it. Drag the
  14178. icon of the program to be decompacted onto the !sparkplug icon on the
  14179. icon bar. A pseudo-filer window opens. Drag the icon or icons from there
  14180. into the filer window of the blank disc. You will be prompted to insert
  14181. that disc into the drive and will probably then have to keep swapping
  14182. the discs over as prompted until all of the compacted files and folders
  14183. have been uncom-pacted and copied across onto the other disc. This may
  14184. actually require quite a number of repetitions, so it may be better to
  14185. create as large a ram disc as possible and drag the files from the
  14186. !Sparkplug filer window onto the ram disc then change discs and copy
  14187. back from the ram disc to the blank disc. This, of course, will not work
  14188. if you cannot make a ram disc big enough to accommodate the uncompacted
  14189. files.
  14190. 3.8
  14191. If you have two discs, simply put the program disc in one drive and the
  14192. blank disc in the other. Proceed as above, except that you will not be
  14193. prompted to change discs since both are accessible to the computer at
  14194. the same time.
  14195. 3.8
  14196. •   Too many fonts − If you have too many anti-aliased fonts, !Edit will
  14197. crash with a ‘Fatal internal error type=5’. So those of you who are
  14198. purchasing the new onslaught of outline fonts should not put them all
  14199. into one !Fonts directory.
  14200. 3.8
  14201. •   VIDC parameters − On the monthly program disk is a text file of all
  14202. the VIDC and VDU para-meters for the standard screen modes. This makes
  14203. life a lot easier when defining your own modes, especially without the
  14204. aid of an oscilloscope to monitor the video waveform, and a VIDC data-
  14205. sheet. It’s much easier to tweak the existing num-bers than to work them
  14206. out from scratch! Mike Harrison.
  14207. 3.8
  14208. •   Wimp programming − If you get unexpected messages such as “Too many
  14209. nested structures” when running a BASIC program in a Desktop application
  14210. it may be simply because you have failed to allocate a large enough
  14211. Wimpslot. Hugh Eagle
  14212. 3.8
  14213. •   Z88 file transfer − The Z88 can save files to disc. Ranger sell a
  14214. battery powered disc drive which reads and writes 3.5“ discs in 720k
  14215. MSDOS format. The trouble is it costs as much as the Z88.
  14216. 3.8
  14217. The Z88 does not insist on sending a line feed, see Printered.
  14218. 3.8
  14219. Since the Z88 serial port uses XOn/XOff by default, a three wire serial
  14220. lead will suffice if the Archim-edes is using similar software. Be sure
  14221. to short other handshaking lines. The simplest method of sending data to
  14222. the Archimedes is to use:
  14223. 3.8
  14224. *SPOOL file
  14225. 3.8
  14226. *FX21,1
  14227. 3.8
  14228. *FX2,1
  14229. 3.8
  14230. and just print from the Z88. Make sure the last lines in the file being
  14231. printed have *SPOOL *FX 2,0.
  14232. 3.8
  14233. The next stage up is to use a communications pack-age such as Hearsay
  14234. and the Filer to send or receive files. There is a nice routine on the
  14235. Data Store utilities disc which does the job using the Filer.
  14236. 3.8
  14237. Lastly the best way of transferring data is to use the PCLink ROM and
  14238. the Z88 filer that comes with Pipedream. Unfortunately PCLink comes with
  14239. a Z88 to PC cable so some soldering is still required. Data transfer
  14240. with PCLink is unnecessarily slow, a version of Kermit would have been
  14241. more use and faster. Bruce Edelsten
  14242. 3.8
  14243. (How about using the Archimedes-Z88 link that we supply for £35? Ed.)
  14244. 3.8
  14245.  
  14246. 3.9
  14247. •   Clear a line − To clear a text input in an editable field, press
  14248. <ctrl-U>. For example, you can use this to clear the filename before
  14249. typing a new entry. Philip Armstrong
  14250. 3.9
  14251. •   !Draw − Someone mentioned converting sprite images to object
  14252. orientated !Draw images. I have used a graph program and converted the
  14253. sprite it created to a !Draw file by zooming up and drawing over the
  14254. sprite. If you keep to, say, the bottom left of each pixel, it works OK
  14255. and gives a much better printed image.
  14256. 3.9
  14257. To get vertical and horizontal lines, use the edit coordinated facility.
  14258. Get one end correct then note its x or y location and then edit the
  14259. other end to match it.
  14260. 3.9
  14261. If you have typed some incorrect text into a draw file, for example ‘Fig
  14262. 4.5’ needs to be changed to ‘Fig 4.6’, then you would normally have to
  14263. re-type the line and be careful to locate it in the same place. If
  14264. characters are changed leaving the string length the same then you could
  14265. use !Edit to search and replace the text, once the draw file has been
  14266. dragged onto the !Edit icon. Strings could also be padded out with
  14267. spaces if a shorter replace string is required, but for a longer string
  14268. it is usually easier to re-type in !Draw. Philip Armstrong
  14269. 3.9
  14270. •   DXF files − Inclusion of a 41 group in TEXT entities permits
  14271. characters with varying aspect ratios. A value of 0.5 matches the system
  14272. fonts. Jim Markland.
  14273. 3.9
  14274. •   Elektor sound sampler − In December’s issue of the Netherlands
  14275. edition of Elektor (November in the U.K. edition) they published a
  14276. D.I.Y. sound sampler podule. This podule has been built freq-uently but
  14277. there is one small problem. There are no commands provided to use the
  14278. sampler so it is difficult to use it in your own software. I decided
  14279. therefore to write a module.
  14280. 3.9
  14281. The module makes use of a timer within the 6522 on the board. This
  14282. results in a very accurate sample-time. To make use of the module, you
  14283. need to set a jumper on the podule which connects the 6522-IRQ-line to
  14284. the FIQ-line of the Archimedes.
  14285. 3.9
  14286. Holding the podule with the 64-way-connector towards you and the print
  14287. header at the right, you can place the jumper vertically at the right
  14288. bottom of the print header.
  14289. 3.9
  14290. Now you can use the module. There is a SWI included:
  14291. 3.9
  14292. ElektorSampler_Sample (&500)
  14293. 3.9
  14294. R0 = Start address of the sample buffer
  14295. 3.9
  14296. R1 = End address of the sample buffer
  14297. 3.9
  14298. R2 = Sample time in µs
  14299. 3.9
  14300. R3 = Minimum level to start sampling
  14301. 3.9
  14302. R4 : bit 0: This bit defines the quality of the sample. Low quality
  14303. sampling must be used unless you are prepared to allow the screen to be
  14304. disabled. 0 = high quality sampling, 1 = low quality sampling.
  14305. 3.9
  14306.    bit 1: This bit defines whether the low order byte of the address
  14307. where the sample is written to, must be placed on the userport or not.
  14308. This enables you to take multi-channel samples (e.g. stereo) using an
  14309. analogue multiplexer (e.g. HEF 4051). When you’re not using this option,
  14310. leave the bit ‘0’. 0 = no output to the userport, 1 = output to the
  14311. userport
  14312. 3.9
  14313.    Leave unused bits ‘0’ for upward compatibility
  14314. 3.9
  14315. After calling this SWI, the screen will be disabled during the sampling.
  14316. While waiting for the minimum level, the border will be coloured yellow
  14317. − whilst sampling, the border will be red. As long as the border is
  14318. yellow, you can quit by pressing <escape>. The buffer will be filled
  14319. with linear 8-bit signed numbers.
  14320. 3.9
  14321. The minimum sample-time that can be used on a normal Archimedes is about
  14322. 9 µs. The minimum sample-time that can be used with the ZN427 (the ADC)
  14323. is approx. 12 µs.
  14324. 3.9
  14325. The module could be used with the Armadeus sampler if Armadeus software
  14326. were suitably modified. Since Armadeus is written in BASIC this should
  14327. be possible.
  14328. 3.9
  14329. As far as I’m concerned this module may be copied freely provided that
  14330. my name, as author, remains within the software.
  14331. 3.9
  14332. Questions or suggestions? You can contact me via Archive.
  14333. 3.9
  14334. To conserve space, we have stripped the comments out of this listing.
  14335. The full commented listing is available on the monthly program disc.
  14336. 3.9
  14337.  10 REM >SamplerSrc
  14338. 3.9
  14339.  20 REM Written by J.P.Hendrix
  14340. 3.9
  14341.  30 start=4:end=10:speed=9:ioc=8
  14342. 3.9
  14343. :rd427=5:wr427=6:bs6522=7:level=11
  14344. 3.9
  14345. :flags=12
  14346. 3.9
  14347.  40 DIM Code 1000
  14348. 3.9
  14349.  50 FOR Pass=4 TO 7 STEP 3
  14350. 3.9
  14351.  60 P%=0
  14352. 3.9
  14353.  70 O%=Code
  14354. 3.9
  14355.  80 [   OPT   Pass
  14356. 3.9
  14357.  90     EQUD  0
  14358. 3.9
  14359. 100     EQUD  0
  14360. 3.9
  14361. 110     EQUD  0
  14362. 3.9
  14363. 120     EQUD  0
  14364. 3.9
  14365. 130     EQUD  Title
  14366. 3.9
  14367. 140     EQUD  Help
  14368. 3.9
  14369. 150     EQUD  0
  14370. 3.9
  14371. 160     EQUD  &500
  14372. 3.9
  14373. 170     EQUD  Handler
  14374. 3.9
  14375. 180     EQUD  Table
  14376. 3.9
  14377. 190     EQUD  0
  14378. 3.9
  14379. 200
  14380. 3.9
  14381. 210     EQUS  “Elektor Sampler
  14382. 3.9
  14383.  Module 1.03  (c) copyright
  14384. 3.9
  14385. 22 Apr 1990 by J.P. Hendrix“
  14386. 3.9
  14387. 220
  14388. 3.9
  14389. 230 .YelBorder
  14390. 3.9
  14391. 240     EQUB  0
  14392. 3.9
  14393. 250     EQUB  24
  14394. 3.9
  14395. 260     EQUB  255
  14396. 3.9
  14397. 270     EQUB  255
  14398. 3.9
  14399. 280     EQUB  0
  14400. 3.9
  14401. 290     ALIGN
  14402. 3.9
  14403. 300
  14404. 3.9
  14405. 310
  14406. 3.9
  14407. 320 .Handler
  14408. 3.9
  14409. 330     STMFD R13!,{r0-r12 ,R14}
  14410. 3.9
  14411. 340     CMP   R11,#&00
  14412. 3.9
  14413. 350     BNE   UnknownSWI
  14414. 3.9
  14415. 360     MOV   flags,R4
  14416. 3.9
  14417. 370     MOV   start,R0
  14418. 3.9
  14419. 380     MOV   end,R1
  14420. 3.9
  14421. 390     MOV   speed,R2,LSL #1
  14422. 3.9
  14423.  400     SUB   speed,speed,#2
  14424. 3.9
  14425.  410     AND   level,R3,#&7F
  14426. 3.9
  14427.  420     STMFD R13!,*{t ,end,speed}
  14428. 3.9
  14429.  430     SWI   “I/O_Podule_Hardware”
  14430. 3.9
  14431.  440     BIC   R0,R1,#&00FF0000
  14432. 3.9
  14433.  450     ORR   wr427,R0,#%000<<11
  14434. 3.9
  14435.  460     ORR   rd427,R0,#%010<<11
  14436. 3.9
  14437.  470     ORR   bs6522,R1,#%101<<11
  14438. 3.9
  14439.  480     MOV   ioc,#&3200000
  14440. 3.9
  14441.  490     STMFD R13!,{wr427 ,rd427,
  14442. 3.9
  14443. bs6522,ioc}
  14444. 3.9
  14445.  500
  14446. 3.9
  14447.  510     MOV   R0,#0
  14448. 3.9
  14449.  520     MOV   R1,#3072
  14450. 3.9
  14451.  530     TST   flags,#1
  14452. 3.9
  14453.  540     SWIEQ “XOS_UpdateMEMC”
  14454. 3.9
  14455.  550
  14456. 3.9
  14457.  560     MOV   R0,#0
  14458. 3.9
  14459.  570     MOV   R1,#24
  14460. 3.9
  14461.  580     SWI   “OS_ReadPalette”
  14462. 3.9
  14463.  590     ADR   R0,OrgColour
  14464. 3.9
  14465.  600     MOV   R2,R2,LSR #8
  14466. 3.9
  14467.  610     STRB  R2,[R0,#2]!
  14468. 3.9
  14469.  620     MOV   R2,R2,LSR #8
  14470. 3.9
  14471.  630     STRB  R2,[R0,#1]!
  14472. 3.9
  14473.  640     MOV   R2,R2,LSR #8
  14474. 3.9
  14475.  650     STRB  R2,[R0,#1]!
  14476. 3.9
  14477.  660
  14478. 3.9
  14479.  670     MOV   R0,#12
  14480. 3.9
  14481.  680     ADR   R1,YelBorder
  14482. 3.9
  14483.  690     SWIEQ “OS_Word”
  14484. 3.9
  14485.  700
  14486. 3.9
  14487.  710     MOV   R1,#&0C
  14488. 3.9
  14489.  720     SWI   “OS_ServiceCall”
  14490. 3.9
  14491.  730
  14492. 3.9
  14493.  740     LDMFD R13!,{wr427 ,rd427,
  14494. 3.9
  14495. bs6522,ioc}
  14496. 3.9
  14497.  750
  14498. 3.9
  14499.  760     MOV   R0,#&00
  14500. 3.9
  14501.  770     STRB  R0,[ioc,#&38]
  14502. 3.9
  14503.  780
  14504. 3.9
  14505.  790
  14506. 3.9
  14507.  800     MOV   R0,#SamplerEnd-
  14508. 3.9
  14509. SamplerBegin
  14510. 3.9
  14511.  810     MOV   R1,#&1C
  14512. 3.9
  14513.  820     ADR   R2,SamplerBegin
  14514. 3.9
  14515.  830 .PokeLoop
  14516. 3.9
  14517.  840     LDR   R3,[R2,R0]
  14518. 3.9
  14519.  850     STR   R3,[R1,R0]
  14520. 3.9
  14521.  860     SUBS  R0,R0,#4
  14522. 3.9
  14523.  870     BPL   PokeLoop
  14524. 3.9
  14525.  880
  14526. 3.9
  14527.  890     LDMFD R13!,*{t ,end,speed}
  14528. 3.9
  14529.  900
  14530. 3.9
  14531.  910
  14532. 3.9
  14533.  920     TST   flags,#2
  14534. 3.9
  14535.  930     MOV   R0,#255
  14536. 3.9
  14537.  940     MOVEQ R0,#0
  14538. 3.9
  14539.  950     STRB  R0,[bs6522,#02*4]
  14540. 3.9
  14541.  960     AND   R0,speed,#&FF
  14542. 3.9
  14543.  970     STRB  R0,[bs6522,#06*4]
  14544. 3.9
  14545.  980     MOV   R0,speed,LSR #8
  14546. 3.9
  14547.  990     STRB  R0,[bs6522,#07*4]
  14548. 3.9
  14549. 1000     MOV   R0,#&40
  14550. 3.9
  14551. 1010     STRB  R0,[bs6522,#11*4]
  14552. 3.9
  14553. 1020     MOV   R0,#&00
  14554. 3.9
  14555. 1030     STRB  R0,[bs6522,#13*4]
  14556. 3.9
  14557. 1040     MOV   R0,#&C0
  14558. 3.9
  14559. 1050     STRB  R0,[bs6522,#14*4]
  14560. 3.9
  14561. 1060     AND   R0,speed,#&FF
  14562. 3.9
  14563. 1070     STRB  R0,[bs6522,#04*4]
  14564. 3.9
  14565. 1080
  14566. 3.9
  14567. 1090     STRB  R0,[wr427]
  14568. 3.9
  14569. 1100 .WaitLevel
  14570. 3.9
  14571. 1110     SWI   “OS_ReadEscapeState”
  14572. 3.9
  14573. 1120     BCS   Exit
  14574. 3.9
  14575. 1130
  14576. 3.9
  14577. 1140     LDRB  R0,[rd427]
  14578. 3.9
  14579. 1150     STRB  R0,[wr427]
  14580. 3.9
  14581. 1160     TST   R0,#&80
  14582. 3.9
  14583. 1170     RSBEQ R0,R0,#&100
  14584. 3.9
  14585. 1180     AND   R0,R0,#&7F
  14586. 3.9
  14587. 1190     CMP   level,R0
  14588. 3.9
  14589. 1200     BHI   WaitLevel
  14590. 3.9
  14591. 1210     STRB  R0,[wr427]
  14592. 3.9
  14593. 1220
  14594. 3.9
  14595. 1230     SWI   “OS_IntOff”
  14596. 3.9
  14597. 1240
  14598. 3.9
  14599. 1250     TST   flags,#1
  14600. 3.9
  14601. 1260     MOV   R0,#12
  14602. 3.9
  14603. 1270     ADR   R1,RedBorder
  14604. 3.9
  14605. 1280     SWIEQ “OS_Word”
  14606. 3.9
  14607. 1290
  14608. 3.9
  14609. 1300     MOV   R0,speed,LSR #8
  14610. 3.9
  14611. 1310     STRB  R0,[bs6522,#05*4]
  14612. 3.9
  14613. 1320
  14614. 3.9
  14615. 1330     MOV   R0,#&40
  14616. 3.9
  14617. 1340     STRB  R0,[ioc,#&38]
  14618. 3.9
  14619. 1350 .SampleLoop
  14620. 3.9
  14621. 1360     CMP   end,start
  14622. 3.9
  14623. 1370     BPL   SampleLoop
  14624. 3.9
  14625. 1380
  14626. 3.9
  14627. 1390     MOV   R0,#&00
  14628. 3.9
  14629. 1400     STRB  R0,[ioc,#&38]
  14630. 3.9
  14631. 1410 .Exit
  14632. 3.9
  14633. 1420     MOV   R0,#&7F
  14634. 3.9
  14635. 1430     STRB  R0,[bs6522,#14*4]
  14636. 3.9
  14637. 1440     MOV   R0,#&00
  14638. 3.9
  14639. 1450     STRB  R0,[bs6522,#13*4]
  14640. 3.9
  14641. 1460
  14642. 3.9
  14643. 1470     MOV   R1,#&0B
  14644. 3.9
  14645. 1480     SWI   “OS_ServiceCall”
  14646. 3.9
  14647. 1490     SWI   “OS_IntOn”
  14648. 3.9
  14649. 1500
  14650. 3.9
  14651. 1510     MOV   R0,#0
  14652. 3.9
  14653. 1520     STRB  R0,[bs6522,#02*4]
  14654. 3.9
  14655. 1530
  14656. 3.9
  14657. 1540     MOV   R0,#3072
  14658. 3.9
  14659. 1550     MOV   R1,#3072
  14660. 3.9
  14661. 1560     TST   flags,#1
  14662. 3.9
  14663. 1570     SWIEQ “OS_UpdateMEMC”
  14664. 3.9
  14665. 1580
  14666. 3.9
  14667. 1590     MOV   R0,#12
  14668. 3.9
  14669. 1600     ADR   R1,OrgColour
  14670. 3.9
  14671. 1610     SWIEQ “OS_Word”
  14672. 3.9
  14673. 1620
  14674. 3.9
  14675. 1630     MOV   R0,#124
  14676. 3.9
  14677. 1640     SWI   “OS_Byte”
  14678. 3.9
  14679. 1650
  14680. 3.9
  14681. 1660     LDMFD R13!,{r0-r12 ,PC}^
  14682. 3.9
  14683. 1670
  14684. 3.9
  14685. 1680 .UnknownSWI
  14686. 3.9
  14687. 1690     LDMFD R13!,{r0-r12 ,R14}
  14688. 3.9
  14689. 1700     ADR   R0,Error
  14690. 3.9
  14691. 1710     ORRS  PC,R14,#2^28
  14692. 3.9
  14693. 1720
  14694. 3.9
  14695. 1730 .SamplerBegin
  14696. 3.9
  14697. 1740     STRB  start,[bs6522,#00*4]
  14698. 3.9
  14699. 1750     LDRB  R0,[rd427]
  14700. 3.9
  14701. 1760     EOR   R0,R0,#&80
  14702. 3.9
  14703. 1770     STRB  R0,[start],#1
  14704. 3.9
  14705. 1780     MOV   R0,#&C0
  14706. 3.9
  14707. 1790     STRB  R0,[bs6522,#13*4]
  14708. 3.9
  14709. 1800     STRB  R0,[wr427]
  14710. 3.9
  14711. 1810     SUBS  PC,R14,#4
  14712. 3.9
  14713. 1820 .SamplerEnd
  14714. 3.9
  14715. 1830
  14716. 3.9
  14717. 1840 .OrgColour
  14718. 3.9
  14719. 1850     EQUB  0
  14720. 3.9
  14721. 1860     EQUB  24
  14722. 3.9
  14723. 1870     EQUB  0
  14724. 3.9
  14725. 1880     EQUB  0
  14726. 3.9
  14727. 1890     EQUB  0
  14728. 3.9
  14729. 1900 .RedBorder
  14730. 3.9
  14731. 1910     EQUB  0
  14732. 3.9
  14733. 1920     EQUB  24
  14734. 3.9
  14735. 1930     EQUB  255
  14736. 3.9
  14737. 1940     EQUB  0
  14738. 3.9
  14739. 1950     EQUB  0
  14740. 3.9
  14741. 1960
  14742. 3.9
  14743. 1970 .Table
  14744. 3.9
  14745. 1980 .Title   EQUS  “ElektorSampler”
  14746. 3.9
  14747. +CHR$(0)
  14748. 3.9
  14749. 1990     EQUS  “Sample”+CHR$(0)
  14750. 3.9
  14751. +CHR$(0)
  14752. 3.9
  14753. 2000 .Help
  14754. 3.9
  14755. 2010     EQUS  “Elektor Sampler”+CHR$
  14756. 3.9
  14757. (9)+“1.03 (22 Apr 1990)”+CHR$(0)
  14758. 3.9
  14759. 2020 .Error
  14760. 3.9
  14761. 2030     EQUD  1
  14762. 3.9
  14763. 2040     EQUS  “Unknown Sampler SWI”
  14764. 3.9
  14765. +CHR$(0)
  14766. 3.9
  14767. 2050 ]
  14768. 3.9
  14769. 2060 NEXT
  14770. 3.9
  14771. 2070
  14772. 3.9
  14773. 2080 SYS “OS_File”,10,“ElektorSam”
  14774. 3.9
  14775. ,&FFA,,Code,O%
  14776. 3.9
  14777. •   Extra Speed in high res modes − You can use SWI “OS_UpdateMEMC” to
  14778. deny VIDC DMA access to the video RAM, which returns to the processor
  14779. the bus bandwidth that was being used by the video system. Turning off
  14780. VIDC’s access to the memory blanks the screen but makes the machine go
  14781. faster even than in MODE 0. To kill VIDC’s access to memory: SYS
  14782. “OS_UpdateMEMC”,0, 1024 To re-enable access use SYS “OS_Update
  14783. MEMC”,1024,1024.
  14784. 3.9
  14785. While the screen is thus disabled, you can still write to it as normal
  14786. and the results will be there when it is switched back on. This short
  14787. program shows the enormous speed gains possible (49% in MODE 15, 120% in
  14788. MODE 24) − it can reduce by a third, the time taken for a MODE 15 ray
  14789. trace. Sean Kelly
  14790. 3.9
  14791.  10 mode=MODE
  14792. 3.9
  14793.  20 MODE 0
  14794. 3.9
  14795.  30 I%=0: T%=TIME
  14796. 3.9
  14797.  40 REPEAT: I%+=1: UNTIL TIME>=T%+100
  14798. 3.9
  14799.  50 MODE mode
  14800. 3.9
  14801.  60 J%=0: T%=TIME
  14802. 3.9
  14803.  70 REPEAT: J%+=1: UNTIL TIME>=T%+100
  14804. 3.9
  14805.  80 SYS “OS_UpdateMEMC”,0,1<<10
  14806. 3.9
  14807.  90 K%=0: T%=TIME
  14808. 3.9
  14809. 100 REPEAT: K%+=1: UNTIL TIME>=T%+100
  14810. 3.9
  14811. 110 SYS “OS_UpdateMEMC”,1<<10,1<<10
  14812. 3.9
  14813. 120 PRINT‘“Loops per second:”’
  14814. 3.9
  14815. 130 PRINT“Normal mode 0 ”;I%
  14816. 3.9
  14817. 140 PRINT“Normal mode ”;mode;“ ”;J%
  14818. 3.9
  14819. 150 PRINT“Blanked mode ”;mode;“ ”;K%
  14820. 3.9
  14821. 160 PRINT“Speed up ”;(K%-J%)/J%*100
  14822. 3.9
  14823. ;“%”
  14824. 3.9
  14825. •   FormEd − I was very interested to see the tip on !FormEd in the May
  14826. issue of Archive which really does make it easier to use. However, there
  14827. is a slight snag with it as published as it is possible to close the
  14828. sprite viewing window which cannot then be re-opened. Also, it is
  14829. possible to activate the ‘Tool’ window which allows editing of the
  14830. sprites if the following changes are made to the !RunImage file.
  14831. 3.9
  14832. 1890   DATA “Load templates>m_templates%
  14833. 3.9
  14834. ,Save templates>m_Savetemp%, Show Sprites, Show Toolbox#, Quit“
  14835. 3.9
  14836. 3090   ELSE PROCmergesprites (FNstring0
  14837. 3.9
  14838. (q%+44)):PROCspriteinfo
  14839. 3.9
  14840. 9781   WHEN 4 : PROCspriteinfo
  14841. 3.9
  14842. 9782   WHEN 5 : PROCencodepal (0,15) :
  14843. 3.9
  14844.  PROCfront (palette%) : PROChtpal
  14845. 3.9
  14846. 9790   WHEN 6 : PROCfinish : END
  14847. 3.9
  14848. Line 1890 adds two new options to the iconbar menu (‘Show Sprites’ and
  14849. ‘Show Toolbox’). Line 3090 has the REM removed which allows merging of
  14850. sprite files. Lines 9781 and 9782 are new and implement the opening of
  14851. the sprite and tool win-dows. Line 9790 needs changing as ‘Quit’ is now
  14852. the sixth item on the menu.
  14853. 3.9
  14854. Some of the sprite editing routines seem to be miss-ing from the
  14855. !RunImage file (such as the ‘spray can’) so I just created a new blank
  14856. sprite and altered the template file so that the non-working options
  14857. don’t appear!
  14858. 3.9
  14859. As noted in the magazine, !Paint is better for creating sprites but
  14860. these simple changes make !FormEd much more useful. One benefit is that
  14861. the sprites edited in !FormEd are displayed in the windows where they
  14862. will actually appear when the application runs. Paul Hobbs
  14863. 3.9
  14864. •   Function key strips − In the past, many have tried to write a
  14865. program which generates one or more function key-strips. In most cases,
  14866. the graph-ics were not quite satisfying. When using MS-DOS software, the
  14867. problem arises that you really need four rows (instead of the standard
  14868. three) to cater for all possibilities: F-key, <shift-F-key>, <ctrl-F-
  14869. key> and <alt-F-key>. To solve this problem I have made two draw-files,
  14870. one for a 3-row function key-strip and one for a 4-row function key-
  14871. strip.
  14872. 3.9
  14873. Both files require the presence of the font ‘Hom-erton.Medium’.
  14874. 3.9
  14875. As an example, I have made a function key-strip for the MS-DOS program
  14876. WordPerfect version 4.2. This file also requires the presence of the
  14877. font ‘Cor-pus.Medium’.
  14878. 3.9
  14879. From where I stand, I find the result of the Drawfiles better than what
  14880. I’ve seen so far. (Available on the monthly program disc.) Maurice
  14881. Hendrix
  14882. 3.9
  14883. •   Hard disc and memory usage − I was interested to read about module
  14884. killing in your First Word Plus column. I have a 1Mb machine and need
  14885. all the memory I can get, so I have already experimented with simple
  14886. module killing routines.
  14887. 3.9
  14888. Firstly, I altered all my !run files to keep track of Clib, FPE and the
  14889. other common modules and kill them if they are no longer needed. This
  14890. used a sys-tem variable for each module that stored the number of
  14891. applications using it. This worked but had several drawbacks. The
  14892. changing of all !run files did take a lot of work and each application
  14893. left open its !run file until it was quit. As a result, I decided that
  14894. man-ual module killing or Resetting is a better solution. One interest
  14895. ing point highlighted by this, is that !Edit suffers a fatal error and
  14896. all work is lost if the FPE is killed even though it does not need it!
  14897. 3.9
  14898. The one thing that I have found extremely useful is the setting up of a
  14899. good hard disc structure and a !boot file. This has saved memory both on
  14900. the disc due to duplication and when loading applications due to fewer
  14901. icons needed to be loaded. It has also given me quicker and easier
  14902. access to programs via the new task option.
  14903. 3.9
  14904. One thing that should be noted by hard disc users is that although
  14905. directories allow a nice structure, they do use memory and also slow the
  14906. access to certain parts of the disc, so don’t go overboard creating
  14907. directories for everything.
  14908. 3.9
  14909. I will try to explain the structure of my hard disc. I have in my root
  14910. directory the following directories and a !boot file.
  14911. 3.9
  14912. !fonts   Outline Fonts
  14913. 3.9
  14914. !system   System Modules
  14915. 3.9
  14916. Art   Artisan, !Paint etc
  14917. 3.9
  14918. Cad   !Draw etc
  14919. 3.9
  14920. Games   !Triv etc
  14921. 3.9
  14922. Library   Command line programs
  14923. 3.9
  14924. Misc   My working directory
  14925. 3.9
  14926. Text/DTP   !Edit, !Impress, !PrinterDM etc
  14927. 3.9
  14928. Utilities   !FormEd, !Hand, !Configure etc
  14929. 3.9
  14930. Others could include Sound, spreadsheets and lang-uages etc. Try to keep
  14931. associated programs together but don’t have directories with lots of
  14932. applications as all the icons are loaded and waste memory. Keep commonly
  14933. used programs one level down and others in sub directories. This is
  14934. especially true for the utilities directory.
  14935. 3.9
  14936. The next stage is to move all the commonly used modules into the
  14937. !system.modules directory. This avoids duplication, ensures a module
  14938. update is used by all programs and also simplifies things. The most
  14939. common modules found are FPEmulator and Clib. Well-written programs will
  14940. already use !System but some don’t and they will need their !run files
  14941. mod-ified. The rmload commands need to load from :4.$. !system.modules.
  14942. If the !run file does not contain the rmload commands it is probably
  14943. best to leave its modules where they are unless you know what you are
  14944. doing. Finding modules can be done using simple utilities such as !hand
  14945. (helping hand) from the Data Store to search for the file type &FFA.
  14946. 3.9
  14947. Probably the most important part of a good hard disc setup is its !boot
  14948. file. This gives the user an ideal chance to customise their system. My
  14949. !boot file shown below sets up various system variables that perform a
  14950. range of functions.
  14951. 3.9
  14952. | !Boot file for hard disc
  14953. 3.9
  14954. | Set variables for directory abbrevs
  14955. 3.9
  14956. Set r adfs::BigHardNo1.$.
  14957. 3.9
  14958. SetMacro u <r>Utilities.
  14959. 3.9
  14960. SetMacro a <r>ART.
  14961. 3.9
  14962. SetMacro d <r>Text/DTP.
  14963. 3.9
  14964. SetMacro g <r>GAMES.
  14965. 3.9
  14966. SetMacro System$Path <r>!System.
  14967. 3.9
  14968. SetMacro sm <r>!System.Modules
  14969. 3.9
  14970. | Set Alias to emulate two common
  14971. 3.9
  14972.  Unix commands
  14973. 3.9
  14974. Set Alias$LS Cat %0
  14975. 3.9
  14976. Set Alias$CD Dir %0
  14977. 3.9
  14978. | Setup directories to be searched
  14979. 3.9
  14980.  for a run command (using abbreviations to keep line
  14981. 3.9
  14982.  to <255 chars )
  14983. 3.9
  14984. SetMacro Run$Path ,%.,<sm>.,<r>L*.,
  14985. 3.9
  14986. <d>1*.,<r>CA*.,<a>,<d>,<r>M*.,
  14987. 3.9
  14988. <d>PI*.,<r>PC.,<u>,<u>CT*.,<u>F*.,
  14989. 3.9
  14990. <u>A*.,<u>B*.,<u>C*.,<u>D*.,
  14991. 3.9
  14992. <u>FO*.,<u>L*.,<u>T*.,<u>M*.,<r>T*.,
  14993. 3.9
  14994. <r>S*.,<g>I*.,<g>B*.,<g>A*.,<d>!i*.
  14995. 3.9
  14996. | Setup directories to be searched
  14997. 3.9
  14998.  for a load command (using abbreviations to keep line
  14999. 3.9
  15000.  to <255 chars )
  15001. 3.9
  15002. Setmacro File$Path ,%.,<sm>.,
  15003. 3.9
  15004. <r>Library.,<u>L*.,<d>!i*.
  15005. 3.9
  15006. | run common applications !boot files
  15007. 3.9
  15008.  to emulate the system seeing the application without cluttering
  15009. 3.9
  15010.  the $ dir.
  15011. 3.9
  15012. <a>!Draw.!Boot
  15013. 3.9
  15014. <a>!Paint.!Boot
  15015. 3.9
  15016. <d>!Edit.!Boot
  15017. 3.9
  15018. <d>!Impress.!Boot
  15019. 3.9
  15020. <u>FILES.!SPARK.!BOOT
  15021. 3.9
  15022. | set any commonly used key strings
  15023. 3.9
  15024. Key 1 *DESKTOP|M
  15025. 3.9
  15026. Key 2 EDIT|M
  15027. 3.9
  15028. | run desktop and display root directory
  15029. 3.9
  15030. Desktop Filer_OpenDir adfs::BigHardNo1.$
  15031. 3.9
  15032. The !boot file starts by defining a series of system variables that are
  15033. to be used throughout the file. They include abbreviated variables to
  15034. represent commonly used pathnames. System$Path is also defined here.
  15035. 3.9
  15036. The next section defines two alias’s that emulate common Unix system
  15037. commands. This is only of use if you switch operating systems commonly
  15038. and tend to accidentally type in the wrong commands. A similar set could
  15039. also be set up for PC users although a clash of the “dir” command would
  15040. occur.
  15041. 3.9
  15042. The next two sections are similar and set up the vari-ables Run$Path and
  15043. File$Path. Firstly, Run$Path can be used to define all the directories
  15044. that you wish to be searched when a run program command is issued.
  15045. Similarly File$Path does the same for loading files. They both include
  15046. the first path which refers to the current directory.
  15047. 3.9
  15048. The system variables defined at the start have been used extensively and
  15049. the * wildcard to keep the line shorter than the 255 character maximum.
  15050. Be careful when using wildcards because a new directory could also match
  15051. the search instead of the intended directory. As an alternative to this,
  15052. a series of paths could be placed into system variables i.e. Run1$ Path,
  15053. Run2$Path etc and then added together to give the complete Run$Path. Be
  15054. careful when using sys-tem variables to get the correct punctuation.
  15055. Each path must end with a full stop “.” although this can been included
  15056. at the end of the system variables.
  15057. 3.9
  15058. The main reason for doing this is to allow the user to use the “New
  15059. Task” option of the task menu. If all the directories are correctly
  15060. listed in this section, you will be able to enter “!Edit” into the “New
  15061. Task” option and the program will install itself onto the icon bar. This
  15062. eliminates the need to know where in the directory structure it is. The
  15063. same goes for loading a program or module. You can now tuck away those
  15064. little used programs and still call them up as long as you know their
  15065. name. The general effect is the same as if everything is in the library
  15066. although loading commands can also be used.
  15067. 3.9
  15068. I have found it useful to emulate the system seeing commonly used
  15069. applications such as !Draw, !Paint and !Edit. To do this all you must do
  15070. is run each application’s !boot file. This will setup all the icons and
  15071. system variables. This means that, for example, a draw file can be
  15072. loaded without the application having being seen.
  15073. 3.9
  15074. A Hard disc !boot file is also the ideal place to set up any commonly
  15075. used key strings as well as loading any important modules.
  15076. 3.9
  15077. Finally, the desktop can be called and I find it useful to open up the
  15078. root directory. This can be done by the Filer_OpenDir command. Alterna
  15079. tively, another obey file can be run after the desktop has been entered
  15080. by the use of the -file option. If this is the case, it may be useful to
  15081. create an application called !boot and rename the !boot file to !run.
  15082. The second obey file can then be hidden inside this directory.
  15083. 3.9
  15084. To create and set up the !boot fileÉ (1) Run !Edit (2) Create obey file
  15085. (icon menu) (3) Type in !boot data (See above) (4) Save as !boot (in
  15086. root directory) (5) Press <f12> and type
  15087. 3.9
  15088. OPT4,2
  15089. 3.9
  15090. Configure drive 4
  15091. 3.9
  15092. Configure boot
  15093. 3.9
  15094. Philip Armstrong
  15095. 3.9
  15096. •   Hourglass − A quick hint for those writing a BASIC program using the
  15097. Hourglass. Often, if an error is generated from BASIC when the hourglass
  15098. is being used, it stays on the screen. This can be cured by
  15099. SYS“Hourglass_Smash” or, if you have already done your error checking,
  15100. SYS“” causes a system error which has the same effect. Philip Armstrong
  15101. 3.9
  15102. •   INKEY problems − If you have a loop which executes continuously and
  15103. rapidly, you might want to use:
  15104. 3.9
  15105. key%=INKEY(0):IF key%=64
  15106. 3.9
  15107. PROC_Fred ELSE IF
  15108. 3.9
  15109. key%=65 PROC_Edith
  15110. 3.9
  15111. to detect a keypress. However, remember that you should have only one
  15112. such INKEY statement in the loop even if you want to cater for many
  15113. different key presses because a single keypress can only be det-ected by
  15114. one INKEY(0) instruction. Steve Kirkby.
  15115. 3.9
  15116. •   Keyboard cleaning (A300/400 series) − The keyboard that is supplied
  15117. with the computer is of the open Printed Circuit Board type. That is, a
  15118. conduc-tive film on the base of each key makes contact with large solder
  15119. plated areas called lands on the main PCB. This makes for a cheap and
  15120. reliable keyboard but it does have its problems because of its exposure
  15121. to the air in that dust can and does get in.
  15122. 3.9
  15123. I’ve had my Archimedes A310 for over 2 years now and my wife lets it
  15124. live in the living room with us. I suppose I should keep the keyboard
  15125. covered with something when not in use but I’ve never got round to doing
  15126. this. Consequently, the keyboard has had to put up with me eating
  15127. biscuits, sandwiches and other unmentionables while typing. I suppose
  15128. the inevitable had to happen and one day the keyboard rebelled! I had
  15129. began to noticed over a period of several days that the space bar and
  15130. left cursor key where playing up until they refused to work at all. Of
  15131. course, this happened a week after the guarantee had run out!
  15132. 3.9
  15133. Visions of massive bills loomed before me so I decided to undertake the
  15134. task of opening the keyboard case and having a look! I first switched
  15135. off the Archimedes and unplugged the keyboard cord from the computer. I
  15136. removed the mouse and turned the keyboard face down with the Reset
  15137. button towards me. I noted that eight large, long hex screws held the
  15138. back section of the keyboard case on. After removing these I just lifted
  15139. the back section away and placed it somewhere safe. The Reset button
  15140. looked slight delicate so I removed it by simply pulling it off. I made
  15141. a mental note of which way round it came off.
  15142. 3.9
  15143. I had a good look and there were seven large, short hex screws holding
  15144. the top keyboard casing to the main PCB frame. I removed these screws
  15145. and lifted the PCB off, putting the top casing away to another safe
  15146. place. I was half expecting the key tops and switches to try and escape
  15147. at this point but they are firmly attached to a metal frame!
  15148. 3.9
  15149. Biscuit supply − Turning the PCB over and looking at the top surface
  15150. between the key tops I was amazed to see a surprising amount of dust and
  15151. what looked like a secret supply of Burtons biscuits! I duly removed
  15152. this with a dry paper towel and again placed the board face down after I
  15153. had a good look at the electronics on the board, but I resisted the
  15154. temptation to touch (I suggest you do the same).
  15155. 3.9
  15156. All that now remained to do was remove the twenty small hex screws
  15157. holding the PCB to the switches. I started with the black screw at S94
  15158. position (this is written on the PCB) and noted that this was the only
  15159. small screw not actually threaded on to a switch. I removed the other
  15160. nineteen screws and gently lifted the PCB off the metal frame holding
  15161. the keys on.
  15162. 3.9
  15163. The contact plates of all the key switches where now exposed and they
  15164. consisted of thin silver discs which when pressed make contact with the
  15165. PCB lands and therefore closed the contacts. These plates looked
  15166. extremely fragile but clean so I left them well alone!
  15167. 3.9
  15168. Cleaning − The PCB lands were dirty, especially around the Space and
  15169. Left Cursor key positions and, being very careful not to put any grease
  15170. from my paws onto the board, I wiped the entire PCB with a dry paper
  15171. towel. Reassembling the keyboard was easy. I just placed the PCB face
  15172. down on to the metal frame holding the keys and lined up the small
  15173. screws positions. A good tip in reassembling something like this is to
  15174. begin placing the screws in from opposite ends and not to tighten up any
  15175. of the screws until they are all in place.
  15176. 3.9
  15177. Once that was done, making sure that the black screw was in the correct
  15178. position, I placed the top section face down on the work table and
  15179. positioned the assembly down onto it, again fitting the seven large
  15180. short hex screws in place. I refitted the Reset moulding into place with
  15181. a resounding click and finished off by screwing down the last eight
  15182. large long hex screws into place. I turned the complete keyboard over
  15183. and plugged it back into the Archimedes and I’m glad to say it works a
  15184. treat! Stuart Halliday
  15185. 3.9
  15186. •   OsSys module − Shortly after the release of the OsSys module, I was
  15187. told that one couldn’t use SWI’s that needed a pointer to a buffer
  15188. because no such facilities where made available. I argued that this was
  15189. very easily implemented and changed the module accordingly. When doing
  15190. this, I also noticed a minor bug in the module. When a string longer
  15191. than 300 characters is passed, the module is supposed to generate an
  15192. error. This works fine but, due to a problem during the development, I
  15193. mistakenly thought that the pipeline was playing up when generating this
  15194. error. (Not all of the error text was displayed: the first 4 characters
  15195. were missing). I solved this by adding 4 to the PC when generating the
  15196. error. Quite wrong of course. I discovered that not the pipeline but I
  15197. was to blame. I had forgotten to put the error number (4 bytes) in
  15198. before the error message.
  15199. 3.9
  15200. To upgrade the OsSys module to version 1.8, load the source code into
  15201. BASIC V and change/add the following lines:
  15202. 3.9
  15203. 10 REM >OsSysSrc18
  15204. 3.9
  15205. 350 EQUS “1.80 (05 Apr 1990)”
  15206. 3.9
  15207. 600 MOV R3,#500
  15208. 3.9
  15209. 610 SWI “OS_Module”
  15210. 3.9
  15211. 611 ;By claiming a larger workarea than required by the
  15212. 3.9
  15213. 612 ;the module, you can use the top of the work area to
  15214. 3.9
  15215. 613 ;create workspace for SWI calls that require pointers to
  15216. 3.9
  15217. 614 ;such a workspace. Eg. calls to WIMP or VDU.
  15218. 3.9
  15219. 650 EQUS “OsSWICalls v1.80 by M. Hendrix => Installed”
  15220. 3.9
  15221. 2510 REM remove this line. It’s incorrect
  15222. 3.9
  15223. 3180 EQUD &01 ;Error number
  15224. 3.9
  15225. Save and run the program.
  15226. 3.9
  15227. The new module will claim more workspace than it actually needs. The top
  15228. 200 bytes can thus be used for SWI buffers. You can use *MEMORYA to edit
  15229. the buffer(s). If you need more space for a buffer just change the value
  15230. #500 in line 600 to your desired amount of memory. (Don’t forget to add
  15231. 300 bytes for the module itself!) Maurice Hendrix
  15232. 3.9
  15233. •   Random number generator − If you use the use the random number
  15234. generator (RND in BASIC), it must be initialised with something really
  15235. random, such as the current time. Otherwise, the same num-bers will be
  15236. produced every time the program is run. The otherwise excellent game
  15237. !Yahtzee on Care-ware 4 suffers from this problem but it can easily be
  15238. solved: insert the line 123 Junk = RND(-TIME) and then every game is
  15239. different. Jonathan Puttock
  15240. 3.9
  15241. •   The Dreaded CLI! − One of the nicest aspects about the Archimedes is
  15242. the Configure command. This command is often forgotten about as it lies
  15243. in that terrible place called the Command Line Interpreter (CLI)
  15244. accessed by pressing the dreaded function 12 key. One of the many things
  15245. that the Configure command does and seems to get lain aside is the
  15246. WimpFlags options. This very useful command determines the action of all
  15247. the windows used by RISC-OS in as far as it controls the two types of
  15248. window movement, resizing and scrolling. What two types?, I hear you
  15249. ask.
  15250. 3.9
  15251. Status − Well if you’ve never used the WimpFlags command before then you
  15252. have probably put up with the kind of windows which, when you change
  15253. their size or move them, all you get is a large dotted outline which
  15254. turns into a solid window when you release <select> or <adjust>. Now you
  15255. have an alternative. If you first press F12 from the Desktop and type in
  15256. *STATUS <return> you’ll get a large list of items and near the end is a
  15257. line Wimpflags x, this x number (it may be 0) is actually the decimal
  15258. representative of a binary pattern of this number which switches on or
  15259. off the various options under this command.
  15260. 3.9
  15261. If you type in *HELP WimpFlags <return> then the following should
  15262. appear:
  15263. 3.9
  15264. *HELP WimpFlags
  15265. 3.9
  15266. ==> Help on keyword WimpFlags
  15267. 3.9
  15268. *Configure WimpFlags sets the
  15269. 3.9
  15270.  default actions when dragging
  15271. 3.9
  15272. windows, as follows:
  15273. 3.9
  15274. bit 0 set: continuous window movement
  15275. 3.9
  15276. bit 1 set: continuous window resizing
  15277. 3.9
  15278. bit 2 set: continuous horizontal scroll
  15279. 3.9
  15280. bit 3 set: continuous vertical scroll
  15281. 3.9
  15282. bit 4 set: don’t beep when error box
  15283. 3.9
  15284.  appears
  15285. 3.9
  15286. Syntax: *Configure WimpFlags <number>
  15287. 3.9
  15288. Simply put, if you where to type in say:
  15289. 3.9
  15290. *CONFIGURE WimpFlags 1 <return>
  15291. 3.9
  15292. and press <ctrl-break> (you need to do this each time you enter new
  15293. values to actually change the values!) you’ll see that if you move any
  15294. window it will be instant! If you want to try some more ‘configuring’
  15295. try changing the WimpFlags to 2 to see only instant window resizing or 3
  15296. for both. (Don’t forget to press <ctrl-break> afterwards!) If you do not
  15297. like this new look, simply change Wimpflags back to 0. The next two
  15298. options concern the scroll bars and these are really useful. If you
  15299. change WimpFlags to 8 you’ll see that by dragging the pointer up and
  15300. down the vertical bar you’ll get a smooth scroll effect, much better
  15301. than constantly clicking the arrow icons! Try WimpFlags set to 4 for
  15302. horizontal scroll or even 12 for them both at the same time.
  15303. 3.9
  15304. Error − The last option just stops the error box beeping at you. Try
  15305. WimpFlags set to 16 and then Select an empty disc drive. Remember you
  15306. can combine any of these together by simply adding their numbers
  15307. together and configuring the WimpFlags. Try WimpFlags set to 31, this is
  15308. my favourite! Stuart Halliday
  15309. 3.9
  15310.  
  15311. • Arthur Fonts − when using the FontDes program supplied with Arthur
  15312. operating system, it is possible to vary the thickness of one or both
  15313. ends of the line.  This is achieved by using the adjust button when the
  15314. mouse is positioned over a line in a “char full” window (this then
  15315. highlights the line) and then pressing the menu button at either end of
  15316. the line.  This will bring up a ‘pen ratio’ window which allows you to
  15317. alter the percentage ratio of the pen at that point, the ratio is set by
  15318. clicking on the percentage window’s quit box.
  15319. 3.10
  15320.  
  15321. 3.10
  15322. • Extra Brushes for !Paint − you can add your own brushes to the !Paint
  15323. package by including the desired shapes in the ‘Sprites’ file i.e.
  15324. 3.10
  15325. (i) Open up the !Paint directory by double clicking on !Paint while
  15326. holding the shift button down
  15327. 3.10
  15328. (ii) Load the ‘Sprites’ file into !Paint
  15329. 3.10
  15330. (iii) Create the brush shapes you want in this file
  15331. 3.10
  15332. (iv) Save the ‘Sprites’ file
  15333. 3.10
  15334. Don’t forget to make a note of the names of the brushes you created so
  15335. that you can access them from the tools menu.  David Parker
  15336. 3.10
  15337.  
  15338. 3.10
  15339. • Hard Spaces can be entered using the <alt> key and typing <1><6><0> on
  15340. the numeric keypad but a much quicker way is just to type <alt><space>. 
  15341. Charles Moire
  15342. 3.10
  15343.  
  15344. 3.10
  15345. • Lightning strikes − Be warned!  Don’t leave your modem connected to
  15346. the phone line when there is an electrical storm.  I did and the spikes
  15347. that came up the phone line killed a new V22bis modem and the RS423 port
  15348. on the Archimedes!  David Leckie.
  15349. 3.10
  15350.  
  15351. 3.10
  15352. • Memory Saving − It is worth remembering that sprites with masks take
  15353. up twice as much room as those without.  If all sprites are altered with
  15354. !Paint to remove the mask, a considerable amount of memory can be saved. 
  15355. Ian Hamilton.
  15356. 3.10
  15357.  
  15358. 3.10
  15359. • Printing with 1M − when using Draw, Paint, Impression, Acorn DTP, etc
  15360. you can quit !PrinterDM (or  whatever printer driver you use) to reclaim
  15361. about 80k of RAM.  It would appear that these applications only need the
  15362. modules that remain in the RMA area after the !PrinterDM application has
  15363. been quit so all the print options are still available.  R J Denison
  15364. 3.10
  15365.  
  15366. 3.10
  15367. • Wimp Window Drawing − The usual construction for defining a graphic
  15368. window and drawing into it would look something like this:
  15369. 3.10
  15370.    DEFPROCgraphic_window
  15371. 3.10
  15372.    VDU26,5,24,graphicsbx%;graphicsby%;graphicstx%;graphicsty%
  15373. 3.10
  15374.    ORIGIN reportbx%-scrollx%,reportty%-scrolly%
  15375. 3.10
  15376.    ENDPROC
  15377. 3.10
  15378.  
  15379. 3.10
  15380.    DEFPROCdraw_text (x%,y%,text$)
  15381. 3.10
  15382.    MOVE x%,y% : PRINT text$
  15383. 3.10
  15384.    ENDPROC
  15385. 3.10
  15386.  
  15387. 3.10
  15388. This will work okay until the values in the origin statement exceed
  15389. 32767.  I found that I had blank screens in the middle of large reports. 
  15390. The following changes cured the problem:
  15391. 3.10
  15392.    DEFPROCgraphic_window
  15393. 3.10
  15394.    VDU26,5,24,graphicsbx%;graphicsby%;graphicstx%;graphicsty%
  15395. 3.10
  15396.    y%=reportty%-scrolly% : compensationy%=0
  15397. 3.10
  15398.    REPEAT
  15399. 3.10
  15400.    IF y%>32000 THEN y%-=32000 : compensationy%+=32000
  15401. 3.10
  15402.    UNTIL y%<=32000
  15403. 3.10
  15404.    ORIGIN reportbx%-scrollx%,y%
  15405. 3.10
  15406.    ENDPROC
  15407. 3.10
  15408.  
  15409. 3.10
  15410.    DEFPROCdraw_text (x%,y%,text$)
  15411. 3.10
  15412.    MOVE x%, y%+compensationy%: PRINT text$
  15413. 3.10
  15414.    ENDPROC
  15415. 3.10
  15416. Although you would have a problem in the x-direction, it is unlikely
  15417. that a window would be that wide.  A similar change could be applied if
  15418. this was necessary.  Ian Hamilton.
  15419. 3.10
  15420.  
  15421. • Blanking discs − (I’m sure we’ve had this before, but not everyong has
  15422. picked it up and I couldn’t find a reference to it in the Archive
  15423. database.)  If you have a disc that has lots of files on it and you try
  15424. to clear them all off by deleting them, it can take ages − it would be
  15425. quicker to reformat the disc.  Even quicker though is to get an existing
  15426. blank disc and do a backup from that to the disc to be blanked − it
  15427. takes just a couple of seconds.
  15428. 3.11
  15429. • ChkSpr − In answer to Ray Dawson’s plea for help about !ChkSpr
  15430. supplied on shareware disc 19:  if you open up the !ChkSpr directory,
  15431. amongst the files you will find one called ‘chkspr’ and one called
  15432. !Boot‘.  If these two files are copied into any Impression document
  15433. directory and if you then rename the document directory, instead of the
  15434. Impression sprite not appearing because the name no longer corresponds
  15435. to the document name (as normally happens) it will appear correctly. 
  15436. This is because the chkspr utility, when run by the new !Boot file,
  15437. checks the name of the first sprite in the sprite file and changes it if
  15438. the name is not the same as that of the document.  This utility can also
  15439. be used to keep the correct sprites for applications.  For example, when
  15440. developing an application, different versions may be kept, all with the
  15441. right sprite file.  Simon Burrows and Emmet Spier.
  15442. 3.11
  15443. • ColourTrans module − I have noticed that each of the printer drivers
  15444. on the RISC OS extras disc contain their own copy of the Colours module! 
  15445. This is at odds with the policy of storing all shared modules in the
  15446. !System directory (you will probably already have a copy of the Colours
  15447. module there − many applications use it).
  15448. 3.11
  15449. To avoid wasting disc space (though Colours uses little) you can remove
  15450. this module from within each printer drivers’ directory and edit the
  15451. !Run file for each driver to call Colours from the !System folder.
  15452. 3.11
  15453. i.e. in each !Run file the line
  15454. 3.11
  15455.    RMEnsure ColourTrans 0.52 RMLoad <PDriver$Dir>.Colours
  15456. 3.11
  15457. should be replaced with
  15458. 3.11
  15459.    RMEnsure ColourTrans 0.52 System:Modules.Colours
  15460. 3.11
  15461. To be even more correct two extra lines should also be added (e.g. like
  15462. the !Spark and !Draw applications).  The above on its own relies on the
  15463. desktop having already seen your !System directory, you should therefore
  15464. put the line
  15465. 3.11
  15466.    If“<System$Path>” = “” Then Error 0 System resources cannot be found
  15467. 3.11
  15468. before the changed line above to check that this is the case.  You
  15469. should also put the line
  15470. 3.11
  15471.    RMEnsure ColourTrans 0.52 Error You need ColourTrans 0.52 or later
  15472. 3.11
  15473. after the changed line − this will check that the module has been loaded
  15474. satisfactorily.
  15475. 3.11
  15476. The Printer Drivers on the original RISC-OS Application Disc I did not
  15477. load the Colours module when they were installed and so do not have this
  15478. problem.  Simon Butler.
  15479. 3.11
  15480. • Debugger/Dissassemble returns an incorrect length for SWI instructions
  15481. − it returns the length as one too many − you get an extra null
  15482. character on these instructions.  As all returned strings are null
  15483. terminated, I found it easier to scan for the null in order to find the
  15484. length.  The zero makes no difference to screen or printing, but if
  15485. written to a text file looks ugly in !Edit.  Kevin Quinn.
  15486. 3.11
  15487. • Desktop bug − There appears to be a fatal bug in the Window Manager of
  15488. RISC-OS 2.00.  It occurs when you drag a menu, and whilst you are
  15489. dragging it, press the <escape> key to remove it.  If you then stop
  15490. dragging the menu, the system will report an ‘Address exception at
  15491. &386BCIC’, the application which created the menu will die fatally and
  15492. most often, all the other applications will die as well, resulting in
  15493. the computer ‘bombing out’ of the desktop into the CLI.  Tom Lakofski.
  15494. 3.11
  15495. • DXF files − Users of DXF files which are comprised only of BLOCKS and
  15496. ENTITIES (or maybe just ENTITIES alone) will find that !Draw does not
  15497. enable the use of its facility for specifying font types when the DXF
  15498. file is just loaded.
  15499. 3.11
  15500. The inclusion of the code below (i.e. a TABLES section) appears to solve
  15501. this problem.  Of course !Draw must have previously ‘seen’ the relevant
  15502. !Fonts directory.  The full sequences for the sections, if all are
  15503. present is HEADER followed by TABLES, then BLOCKS + ENTITIES.  Jim
  15504. Markland.
  15505. 3.11
  15506.    0
  15507. 3.11
  15508.    SECTION
  15509. 3.11
  15510.    2
  15511. 3.11
  15512.    TABLES
  15513. 3.11
  15514.    0
  15515. 3.11
  15516.    TABLE
  15517. 3.11
  15518.    2
  15519. 3.11
  15520.    STYLE
  15521. 3.11
  15522.    70
  15523. 3.11
  15524.    20
  15525. 3.11
  15526.    40
  15527. 3.11
  15528.    0
  15529. 3.11
  15530.    41
  15531. 3.11
  15532.    1
  15533. 3.11
  15534.    50
  15535. 3.11
  15536.    0
  15537. 3.11
  15538.    71
  15539. 3.11
  15540.    0
  15541. 3.11
  15542.    3
  15543. 3.11
  15544.    STANDARD
  15545. 3.11
  15546.    0
  15547. 3.11
  15548.    ENDTAB
  15549. 3.11
  15550.    0
  15551. 3.11
  15552.    ENDSEC
  15553. 3.11
  15554. • Greek3 re-caching − To stop the Greek3 outline font supplied with
  15555. Impression from recaching itself too often all you have to do is rename
  15556. it from ‘Greek3’ to ‘Greek’.  Michael Ben-Gershon.
  15557. 3.11
  15558. • On/Off icons, for example option icons in windows, are implemented by
  15559. using the ‘S’ command in the validation string of an icon with
  15560. indirected text and sprites on.  FormEd will allow you to set these up −
  15561. switch on indirected stuff, put text (if any) into the text item, and
  15562. select sprite − don’t put anything in the sprite sub-menu writeable icon
  15563. and put the sprite name(s) in the indirected validation string, e.g.
  15564. ‘sopton,optoff’.  Then by inverting the icon’s inverted bit it will swap
  15565. over the icons − see the calls Wimp_SetIconState and Wimp_GetIconState
  15566. (pages 1211-1213 of PRM).  Details of validation strings are on pages
  15567. 1184-1187 of the PRM.  Kevin Quinn.
  15568. 3.11
  15569. • OS_Heap − While trying to use the Heap facility in RISC-OS, we found
  15570. that OS_Heap 6, which returns the size of a heap block, returns the size
  15571. including the word at the start containing length.  This is unexpected
  15572. given the Abstract Data Type philosophy that appears to have been used
  15573. for the rest of the system and means that the user knows where the
  15574. length of a block is stored and can read it without using OS_Heap 6 −
  15575. and incidentally, means Acorn can’t rewrite their Heap manager unless
  15576. this word is left in the same place.  James Chong.
  15577. 3.11
  15578. • RenderBender on SCSI hard disc drives.  As you will know, you cannot
  15579. access the hard drive, by using the HARD 4 icon.  Some of you may have
  15580. already tried unsuccessfully to alter the program, by altering the
  15581. variable HD% to 1, to try to force the program into recognising the hard
  15582. drive.  The following alterations should be made to the !Runfile, Render
  15583. and Anirout in the utilities directory.  The code will save all pictures
  15584. to the specified directory if you have not put the Render Bender
  15585. directory in $...
  15586. 3.11
  15587. For the Render program :
  15588. 3.11
  15589.    15 *SET RendHard1 SCSIFS::4.$.!Render
  15590. 3.11
  15591.    40 curd$=“4”:moder%=FALSE
  15592. 3.11
  15593.    15890 A%=32
  15594. 3.11
  15595.    15940 IF A%=32 AND HA%>0 GOTO 15920
  15596. 3.11
  15597.    16020 IF A%=32 THEN curd$=“4”:*SET REdrive SCSIFS::4.$.!Render
  15598. 3.11
  15599. For the Anirout program:
  15600. 3.11
  15601.    6800 IF A%=BE% THEN *SET REdrive SCSIFS::4.$.!Render
  15602. 3.11
  15603. You should then use the edit program to alter the !Run file as follows:
  15604. 3.11
  15605. The line that begins *IF obey$dir... should be changed to...
  15606. 3.11
  15607.    *IFobey$dir=“adfs::Render.$.!Render” THEN *SET RendHard1 SCSIFS::4.
  15608. 3.11
  15609.    $.!Render ELSE *SET RendHard1<Obey$Dir>
  15610. 3.11
  15611. The previous code may seem a bit long winded but I have unfortunately
  15612. not been able to get the *KILLADFS command to work with my version. 
  15613. Neil Berry.
  15614. 3.11
  15615. • Screen size − The screen size in O.S. co-ordinates may be found using
  15616. OS_ReadVduVariables and variable numbers 4 (XEigFactor),5(YEigFactor),11
  15617. (XWindLimit) and 12 (YWindLimit).  The last two are hidden over the page
  15618. and for a while I missed them (pages 345-348 and 350-352).  There is
  15619. also a message that the Wimp broadcasts when the user changes mode,
  15620. enabling your task to keep uptodate on screen sizes − important for drag
  15621. boxes amongst other things.  See page 1259.  Kevin Quinn.
  15622. 3.11
  15623. • System Variables for Filer Module − This little routine enables you to
  15624. use RISC-OS variables with the Filer_OpenDir and Filer_CloseDir
  15625. commands.  This means that you can do commands such as “Filer_OpenDir
  15626. <Obey$Dir>.DataFiles” and make programs totally independent of where
  15627. they are on the disc.  The module requires about 14k of free memory in
  15628. the RMA.  The program has been written in such a way that it should work
  15629. with all future versions of the Filer.
  15630. 3.11
  15631. REM >Filer
  15632. 3.11
  15633. *RMKill Filer
  15634. 3.11
  15635. *RMReInit Filer
  15636. 3.11
  15637. *RMFaster Filer
  15638. 3.11
  15639. SYS “XOS_Module”,18,“Filer%Base” TO ,,,CodeBase%
  15640. 3.11
  15641. TableBase%=CodeBase%+CodeBase%!¤18
  15642. 3.11
  15643. Info%=FN_LookupInfo(“Filer_OpenDir”)
  15644. 3.11
  15645. TableBase%!Info%=TableBase%!Info% OR &00000100
  15646. 3.11
  15647. Info%=FN_LookupInfo(“Filer_CloseDir”)
  15648. 3.11
  15649. TableBase%!Info%=TableBase%!Info% OR &00000100
  15650. 3.11
  15651. END
  15652. 3.11
  15653. :
  15654. 3.11
  15655. DEF FN_LookInfo(Text$)
  15656. 3.11
  15657. LOCAL Offset%,Command$
  15658. 3.11
  15659. Offset%=0
  15660. 3.11
  15661. REPEAT
  15662. 3.11
  15663. Command$=“”
  15664. 3.11
  15665. REPEAT
  15666. 3.11
  15667. Command$+=CHR$(TableBase%?Offset%)
  15668. 3.11
  15669. Offset%+=1
  15670. 3.11
  15671. UNTIL TableBase%?Offset%=0
  15672. 3.11
  15673. Offset%=(Offset%+16+3) AND NOT 3
  15674. 3.11
  15675. UNTIL Command$=Text$ OR TableBase%? Offset%=0
  15676. 3.11
  15677. IF Command$=Text$ THEN =Offset-12 ERROR 0, “I can’t find ”+Text$
  15678. 3.11
  15679. There is one slight problem with this routine due to the way that RISC-
  15680. OS implements the *RMFaster command by re-initialising the module.  This
  15681. means that the Filer icon disappears from the Desktop and cannot be
  15682. recovered without restarting the desktop so the routine is probably best
  15683. placed in a boot routine that subsequently starts up the desktop.  Simon
  15684. Callan.
  15685. 3.11
  15686. • TWIN 8000 − If you load TWIN at an address other than hex 8000 the
  15687. <f10> key functions (goto, newtime, etc) do not work.  It caused me no
  15688. end of problems and phone calls to Acorn before I realised this.
  15689. 3.11
  15690.  
  15691. • Greek3 outline font problem − I was very interested to read, in
  15692. Archive 3.11, about solving the problem of the slowness of the Computer
  15693. Concepts Greek3 font.  The root of the problem was that the internal and
  15694. external names should be the same, and the article suggests that you can
  15695. simply rename the !Fonts.Greek3 directory to !Fonts.Greek, which is very
  15696. quick and easy.  However, if you do this then any existing !Draw files,
  15697. etc containing the Greek3 font will not display with ordinary system
  15698. font characters.  It seems desirable to retain the external name Greek3.
  15699. 3.12
  15700. I think that the best course of action is to change the internal name
  15701. from Greek to Greek3, using the Acorn !FontEd application.  The article
  15702. mentions this without saying HOW to do it; it was all GREEK to me!  So
  15703. after I found out the hard way, here is an idiots guide...
  15704. 3.12
  15705. Install !FontEd on the iconbar, open up the !Fonts.Greek3 directory, and
  15706. you will see the IntMetrics and Outlines files.  Drag the Outlines file
  15707. onto the !FontEd icon on the iconbar.  A window will then open showing
  15708. all the Greek characters.  After a pause, you will hear a beep to show
  15709. that the operation is complete.  Now click <menu> over this window and
  15710. use the Alter->Font name option to change it from Greek to Greek3.  Now
  15711. choose the Save->Outlines and Save->Metrics options in turn; just click
  15712. on the OK boxes, as the file and path names are fine as they are.  Be
  15713. very careful not to change anything else!  Richard Stery (Wakefield BBC
  15714. Micro User Group)
  15715. 3.12
  15716. Make sure you take a backup before you try this as you risk losing the
  15717. font if you get it wrong.  Don’t say we didn’t warn you!  Ed.
  15718. 3.12
  15719. • Recovering deleted files − If you accidentally delete a file you can
  15720. still recover it so long as you take the following steps:
  15721. 3.12
  15722. (i) Do NOT write any data on the disk.
  15723. 3.12
  15724. (ii) Use the !DiscEdit program on Careware 2 and look for your file on
  15725. the disc and note the address (in hex) of the start and end of the file.
  15726. 3.12
  15727. (iii) Now you can use these addresses with the file recoverer program on
  15728. Shareware 9 to extract the file from the disc.  Dirk Schafer.
  15729. 3.12
  15730. • RenderBender on SCSI − In the hint last month, Neil Berry was
  15731. obviously using an early version of Oak’s SCSI interface software in
  15732. which the filing system was referred to as SCSIFS, so all references to
  15733. “SCSIFS::” should be replaced by “SCSI::”.
  15734. 3.12
  15735. • SWI“OS_PrettyPrint” works in VDU 5 mode (print text at graphics
  15736. cursor) as well as VDU 4 mode (print text at text cursor).  It formats
  15737. the text according to the current graphics clipping window (set by VDU
  15738. 24).  For more details on OS_PrettyPrint see Archive 1.7 p9.  Paul
  15739. Witheridge.
  15740. 3.12
  15741. • System variables for the Filer Module (revisited) − Here is a simpler
  15742. solution to the problem of not being able to use system variables with
  15743. the *Filer_OpenDir and *Filer_CloseDir commands than was suggested in
  15744. Archive 3.11 p7.
  15745. 3.12
  15746.    *SetMacro Alias$Filer_OpenDir Set Alias%Foo %Filer_OpenDir
  15747. %0|Mfoo|MUnset Alias%foo|M
  15748. 3.12
  15749. *SetMacro Alias$Filer_CloseDir Set
  15750. Alias$foo%Filer_CloseDir%0|Mfoo|Munset Alias%foo|M
  15751. 3.12
  15752. Once these two lines have been typed, *Filer_OpenDir and *Filer_CloseDir
  15753. can then be used with system variables.  Michael Ben-Gershon.
  15754. 3.12
  15755. • !Edit functions keys − Two more undocumented function key actions for
  15756. EDIT (in addition to <shift><f1> as described in Archive 3.4 p5).  These
  15757. are: <Ctrl><f2> which is equivalent to clicking on the window close icon
  15758. and <ctrl><f7> which toggles between the current caret position and the
  15759. beginning of a marked block.  Paul Witheridge.
  15760. 3.12
  15761.  
  15762. • 160k ADFS discs for the Archimedes?  If you have upgraded to the
  15763. Archimedes from a Master, or even a Beeb with ADFS, you might have some
  15764. 5.25“ discs you want to transfer.  According to the manuals, the
  15765. Archimedes will only read and write to 640k (L) format, Arthur 800k (D)
  15766. format, or the RISC-OS 800k (E) format using either 3.5” or 5.25“ discs
  15767. (80T).  However, the Master could read and write 40T 160k (S) format,
  15768. 80T 320k (M) format, or 80T 640k (L) format discs.  I discovered by
  15769. accident that the Archimedes will quite happily read 5.25” 160k (S)
  15770. discs in 40T mode, and in fact save them − I have not been able to try
  15771. out 320k discs since I do not have any.  You cannot, however, format
  15772. discs at either 160k or 320k on the Archimedes but then why would you
  15773. want to anyway? Chris Hughes (Wakefield BBC Micro User Group).
  15774. 4.01
  15775. • Apocalypse Tips − Progressing from planet to planet is really simple. 
  15776. At the start of the game, a map of your selected planet is displayed. 
  15777. All the objects on the planet’s surface are represented by coloured
  15778. dots, about 80% of which must be destroyed for your craft to be
  15779. withdrawn and for you to be allocated another planet.
  15780. 4.01
  15781. As you progress through the game and return to the ‘Guild of Spacings’
  15782. you will be given various add-ons for your ship.  These include a super-
  15783. cooler for your laser-canon and better shielding.  It is vital that you
  15784. have these if you intend to progress at a reasonable pace, so it is
  15785. advisable to get them as soon as possible.  Remember, you can only
  15786. return a maximum of five times before being rejected by the Guild.  When
  15787. you have destroyed your 80% or so, you will automatically be withdrawn
  15788. by the Guild − this may take some time so don’t give up too quickly!
  15789. 4.01
  15790. If you prefer rather more action and less running away, the following
  15791. lines of the BASIC file ‘!Apocalyps.Apocalypse’ can be changed.
  15792. 4.01
  15793. Line 290 is your starting score.
  15794. 4.01
  15795. Replace line 330 with:  330 !shieldcharge=16 :
  15796. !rapidturnF=1:!guntempcooler=0
  15797. 4.01
  15798. Now delete lines 340 to 380 inclusive for all the extra features and
  15799. (very) strong shields.
  15800. 4.01
  15801. Replace line 770 with: UNTIL 0 for infinite lives.  At line 1970
  15802. !impcounter is the number of objects you have shot, which determines how
  15803. many you have to go before advancing to the next planet.  For instant
  15804. withdrawal, replace 1970 with: 1970 !impcounter=10000.
  15805. 4.01
  15806. Line 6910 is how many times you can return to the guild before rejection
  15807. (this is normally 5).
  15808. 4.01
  15809. • HFORM v1.72 bug or feature?  If you try to format an ST506 hard disc
  15810. that has had a different profile (e.g. it was used on  a PC beforehand)
  15811. with the Acorn HFORM program supplied on the RISC-OS Supplement Disc,
  15812. the new disc shape option will not be acknowledged and so the full
  15813. capacity of the drive may not be realised.  This can be overcome by
  15814. removing the line that reads:
  15815. 4.01
  15816.    2130 IF cyl%=0 IF head%=0 IF Formatted% GOTO 2180
  15817. 4.01
  15818. Brian Oliver.
  15819. 4.01
  15820. • Hostages cheat mode − If you hold down the <R>, <U>, <T> and <H> keys
  15821. once the title screen has loaded and press <return>, you will enter into
  15822. the cheat mode.  This allows you to jump to either section two or three
  15823. of the game with three hostages and seven terrorists.
  15824. 4.01
  15825. • RAM discs for the PC Emulator − It is possible to create a hard disc
  15826. partition in any filing system.  For example, by altering the !PC.!Run2
  15827. file so that the path for Drive D is ‘RAM:$.RamDisc’ and using the FDISK
  15828. program to create a RAMFS hard disc partition, you can obtain any size
  15829. RAM disc you require _ memory and pages sizes permitting.  Michael Ben-
  15830. Gershon.
  15831. 4.01
  15832. • Reading a system variable from BASIC − The question was, “I’ve got a
  15833. system variable being set in the !Run obey file:
  15834. 4.01
  15835.    Set MaxNumberOfFonts 32
  15836. 4.01
  15837. and I want to be able to read this value into a BASIC variable but when
  15838. I use:
  15839. 4.01
  15840.    value% = VAL (“<MaxNumberOfFonts>”)
  15841. 4.01
  15842. it produces the error ‘Variable not found’, because it takes the ‘<’
  15843. character as meaning ‘less than’ rather than ‘start of system variable’. 
  15844. Using the BASIC keyword EVAL has the same effect.
  15845. 4.01
  15846. The first thing we need to do is to extract the value of the system
  15847. variable into a string that we can manipulate.  After searching through
  15848. the PRM volume II, I eventually found OS_ReadVarVal (SWI&23) on page
  15849. 750.  On entry, R0 points to the name of the system variable to be read,
  15850. R1 points to a suitable buffer to store the string in, R2 is the maximum
  15851. length of this buffer, R3 is set to 0 to use the first occurance of the
  15852. named system variable, and R4 is set to 3 so that an expanded string is
  15853. returned in the buffer.
  15854. 4.01
  15855. On exit, we should now have the value of the system variable in the form
  15856. of a string.  The next task is to convert this string into an integer,
  15857. and this is easily performed by using OS_ReadUnsigned (SWI &21) on page
  15858. 585.  On entry, R0 is set to 0 so that the base number used is assumed
  15859. to be 10 unless the string indicates otherwise, R1 is the pointer to the
  15860. string (note that this is the same as R1 for OS_ReadVarVal, which is
  15861. preserved on exit).  On exit R2 contains the value of the system
  15862. variable as an integer, using only two SWI calls.
  15863. 4.01
  15864. This is easily implemented in both BASIC and ARM assembler.
  15865. 4.01
  15866. In BASIC this can be achieved with 4 instructions:
  15867. 4.01
  15868.    MaxBufferLength = 16
  15869. 4.01
  15870.    DIM BufferPtr MaxBufferLength
  15871. 4.01
  15872.    SYS “OS_ReadVarVal”, “MaxNumberOfFonts”, BufferPtr,
  15873. MaxBufferLength,0,3
  15874. 4.01
  15875.    SYS “OS_ReadUnsigned”,0,BufferPtr TO ,,value%
  15876. 4.01
  15877. and if you want to do in Arm assembler, then only eight instructions are
  15878. necessary:
  15879. 4.01
  15880.    ...
  15881. 4.01
  15882.    ADR R0, SystemVariablePtr ; point to system variable
  15883. 4.01
  15884.    ADR R1, BufferPtr; point to buffer
  15885. 4.01
  15886.    MOV R2, #MaxBufferLength ; length of buffer
  15887. 4.01
  15888.    MOV R3, #0 ; use first one found
  15889. 4.01
  15890.    MOV R4, #3 ; expand fully
  15891. 4.01
  15892.    SWI XOS_ReadVarVal ; R1 preserved
  15893. 4.01
  15894.    MOV R0, #0 ; use default base
  15895. 4.01
  15896.    SWI XOS_ReadUnsigned ; R2 = value%
  15897. 4.01
  15898.    SystemVariablePTr = “MaxNumberOfFonts”, 0 ; note no ‘<’ or ‘>’ are
  15899. used
  15900. 4.01
  15901.    ALIGN
  15902. 4.01
  15903.    MaxBufferLength * 16
  15904. 4.01
  15905.    BufferPtr % MaxBufferLength ; reserve MaxBufferLength
  15906. 4.01
  15907.    ALIGN ; bytes of workspace
  15908. 4.01
  15909. To give a quick example of its use.  ‘SetMaxNumberOfFonts 16’ gives
  15910. value% = 16.  ‘SetMaxNumberOfFonts &20 gives value% = 32.
  15911. 4.01
  15912. This may be of use to programmers, as it allows constants to be set up
  15913. in the !Run obey file and users can modify them to fit their require
  15914. ments, without having to modify the program itself.  John ‘Lofty’
  15915. Wallace.
  15916. 4.01
  15917. • System Variables for the Filer Module (Archive 3.11 p7) − The problem
  15918. with the Filer module not allowing you to include system variables can
  15919. be solved a lot easier (and without taking up any valuable RMA space).
  15920. 4.01
  15921. I like to use icons for the directories which contain the third party
  15922. applications, demos, utilities, etc.  This meant using an application
  15923. directory and I wanted a general purpose !Run obey file to open the
  15924. directory viewer (using Filer_OpenDir).  However, I came across the same
  15925. problem as Simon Callan.  The solution I present here was passed on to
  15926. me by Paul Fellows (who wrote ‘Archimedes Basic Compiler’ amongst other
  15927. things) and so I don’t wish to take the credit for such a neat idea.
  15928. 4.01
  15929. So that I don’t have the !Run, !Sprites, etc with the actual programs I
  15930. want to view, I create a directory ‘_’ inside that application directory
  15931. to hold them.  Thus my !Run obey file reads as follows:
  15932. 4.01
  15933.    |!Run obey file
  15934. 4.01
  15935.    |
  15936. 4.01
  15937.    IconSprites <Obey$Dir>.!Sprites
  15938. 4.01
  15939.    Set Alias$OpenDir Filer_OpenDir <Obey$Dir>._
  15940. 4.01
  15941.    OpenDir
  15942. 4.01
  15943. Setting a command string as an ‘Alias’ will expand any system variables
  15944. within that command string.  This gets around the problem which Simon
  15945. describes, and also means that you don’t need to run a program every
  15946. time you switch the machine on.  John ‘Lofty’ Wallace.
  15947. 4.01
  15948.  
  15949. • 160k ADFS Discs (continued from Archive 4.1 p9) − It is certainly true
  15950. that the Archimedes can be made to read and write 160k or 320k ADFS
  15951. discs correctly.  I think, however, that the Archimedes ‘sees’ these as
  15952. 640k L format discs and if a read or write operation directs it to a
  15953. track beyond 39 (160k) it will try to push the disc head off the edge of
  15954. the disc searching for tracks that aren’t there.  Fine if you know what
  15955. you’re doing.  Lorcan Mongey.
  15956. 4.02
  15957. • Am I in the desktop?  You can use the Wimp_ReadSysInfo SWI command to
  15958. see if your program is running in the desktop or not.  The command
  15959. returns the number of active tasks, which will be zero if the program is
  15960. running outside of the desktop environment.  The example program below
  15961. will sense whether it has been run from the desktop environment and if
  15962. not, it will start up the desktop before running another application (in
  15963. this case !Edit).
  15964. 4.02
  15965.    program segment missing
  15966. 4.02
  15967. Adrian Look.
  15968. 4.02
  15969. • Apocalypse hints & tips − If you shoot the green T-shaped buildings
  15970. with a triangular roof using a mega photon your shield will be replen
  15971. ished.  If you shoot a purple and green mushroom, your shield will go
  15972. into override but your points are decreased for anything you hit with
  15973. the photons you are allocated.  If you shoot a rectangular brown
  15974. building they leave a shallow pyramid and if you shoot this, a Rakon
  15975. Gomjabba will appear and you will get a few more points for destroying
  15976. this.  If you shoot a Snail Rider with a mega photon, your energy banks
  15977. are recharged.  If you shoot a green mushroom, your score will decrease
  15978. for everything you hit with the mega photons allocated.
  15979. 4.02
  15980. If you type in and run the following program with disc two in drive 0
  15981. you will then be able to access all of Apocalypse’s nine worlds.
  15982. 4.02
  15983.    program segment missing
  15984. 4.02
  15985. Paul Bedford.
  15986. 4.02
  15987. • Bug in the Debugger Module − Some of you may be aware of a problem
  15988. with the Debugger module failing to disassemble certain instructions
  15989. correctly if they contain an immediate constant.  An immediate constant
  15990. is stored as an eight-bit value with a 4-bit shift applied, and the
  15991. debugger normally expands this format to its correct value, but
  15992. occasionally fails, e.g.
  15993. 4.02
  15994.    E28F0C01 ADD R0,PC, #&0100 correctly expanded
  15995. 4.02
  15996.    E28F0D01 ADD R0,PC, #&01,26 failed to expand (should be #&40)
  15997. 4.02
  15998. I have disassembled the debugger module and found the offending piece of
  15999. code.  It doesn’t seem to be a bug, rather a deliberate move to expand
  16000. constants differently under certain circumstances but for no obvious
  16001. reason.  Anyway, the fix is to change the word at offset &920 in the
  16002. module from &1A000028 to &FA000028, effectively changing a BNE to a BNV. 
  16003. This seems to solve the problem, although I haven’t tested this fix
  16004. exhaustively, so proceed with caution.  Lorcan Mongey.
  16005. 4.02
  16006. • BUILDing !Run files − If you write a !Run file using *BUILD and want
  16007. to include a line such as:
  16008. 4.02
  16009.    Run <Obey$Dir> .!RunImage
  16010. 4.02
  16011. then, instead, you should type:
  16012. 4.02
  16013.    Run |<Obey$Dir>.!RunImage
  16014. 4.02
  16015. to prevent RISC-OS from inserting the value of Obey$Dir into the file. 
  16016. It may be obvious but until now I have been using !Edit to write a two
  16017. line Obey file!  Elliott Hughes.
  16018. 4.02
  16019. • Copy Options − “Confirm” and “Verbose” − I think this is probably one
  16020. of those hints which would be classed as “obvious” by those who know it: 
  16021. The Archimedes User Guide and the PRM both describe, at some length, the
  16022. use of the system variable Copy$Options which sets default options for
  16023. the *Copy command.  However, neither make if clear that the desktop
  16024. filer has its own “Confirm” and “Verbose” options which are quite
  16025. independent of those which are stored in the system variable.  Thus no
  16026. amount of modification of Copy$Options in boot files or elsewhere will
  16027. affect the way the desktop behaves.
  16028. 4.02
  16029. The filer options can be read and changed by clicking the menu button
  16030. over any directory window and choosing the Options option.  The options
  16031. selected by this route differ in one significant way from the
  16032. Copy$Options in that they are stored in battery-backed RAM and thus are
  16033. preserved when the machine is switched off or reset.  They are stored in
  16034. byte 198 of the CMOS RAM (not byte 195 as my copy of the PRM says) along
  16035. with various other desktop options:
  16036. 4.02
  16037.    program segment missing
  16038. 4.02
  16039. Having these options stored in CMOS RAM can sometimes be an advantage
  16040. but on the whole I find it rather inconvenient.  For instance, I often
  16041. change temporarily from an icon display to “Full Info” and would like
  16042. icons to be restored after a reset.  Luckily this sort of preference can
  16043. easily be dealt with by a few lines in the boot routine.  For instance,
  16044. the following lines of BASIC will reset the Display mode to small icons
  16045. while preserving the other options:
  16046. 4.02
  16047.    program segment missing
  16048. 4.02
  16049. Hugh Eagle.
  16050. 4.02
  16051. • Cut and paste clip board − Many RISC-OS applications have a ‘cut and
  16052. paste’ option.  If these applications can also edit more than one
  16053. document at a time then you can use the ‘cut and paste’ option as a clip
  16054. board to transfer data from one document to another.  For example, you
  16055. can select a block of text in one !Edit document, move to another
  16056. document and then use the <ctrl><c> option to copy the block into that
  16057. document.  This method will also work with applications such as
  16058. PipeDream but not Ovation or Impression, etc as they use the ‘clip
  16059. board’ method.  Steve Drain.
  16060. 4.02
  16061. • Deskjet Plus Ink Cartridges, Recharging − You may have discovered the
  16062. same problem as me when trying to recharge these cartridges, namely that
  16063. the ink won’t go in the hole!
  16064. 4.02
  16065. A bit of reverse engineering, with the aid of a hacksaw, has revealed
  16066. the cause.  The container is filled with a dense spongy material which
  16067. holds the ink, but this does not enter the cavity formed by the raised
  16068. green portion with the central vent hole.  If a syringe needle is
  16069. entered through this hole it must be long enough to reach into the
  16070. sponge.  At least 20mm is required.  If this is not the case then the
  16071. inserted ink charge is held on top of the sponge by surface tension, and
  16072. quickly overflows through the charge hole.
  16073. 4.02
  16074. The only syringes which I can get hold of are intended for diabetics and
  16075. have a needle which is too short to reach the sponge through the top
  16076. hole.  The solution is to fill the sponge through the top hole.  The
  16077. solution is to fill through a second hole, drilled as small as possible,
  16078. on the 3mm wide land to the side of the raised portion.  In this
  16079. location there is a small internal cavity not filled with sponge.  This
  16080. prevents capillary leakage after recharging.
  16081. 4.02
  16082. Archive readers may be interested in the following program which will
  16083. draw a sketch showing the location of the hole.  It should be made as
  16084. close to the vertical wall of the raised portion as is possible.
  16085. 4.02
  16086.    program segment missing
  16087. 4.02
  16088. With regard to inks I have excellent results with Rotring Art Pen Ink
  16089. which comes in many colours.  Bill Graham.
  16090. 4.02
  16091. • MEMC DMA control register − With reference to Sean Kelly’s tip in June
  16092. ‘90 for gaining extra speed from the Archimedes by disabling the VIDC’s
  16093. DMA access.  Although the technique normally works without any trouble,
  16094. occasionally the machine crashes or has its memory contents corrupted. 
  16095. As Sean correctly stated, bit 10 of the MEMC register controls VIDC DMA,
  16096. however, as the dynamic RAM (DRAM) in the machine is no longer being
  16097. read by the VIDC it is also no longer being refreshed properly.  Bits 8
  16098. & 9 of the MEMC come to the rescue, they are the DRAM refresh control
  16099. bits.
  16100. 4.02
  16101. There are three available modes of refresh:-
  16102. 4.02
  16103.             bit 8   bit 9
  16104. 4.02
  16105. a) no refresh         1   0
  16106. 4.02
  16107.     (not used by the Archimedes)
  16108. 4.02
  16109. b) refresh during video flyback      0   1
  16110. 4.02
  16111. c) continuous refresh         1   1
  16112. 4.02
  16113. Flyback time during standard modes (0-16 & 24) is greater than the DRAM
  16114. holding time and as such requires refresh during flyback.  In multi-sync
  16115. modes the flyback time is much faster and the memory does not need to be
  16116. refreshed by the MEMC.
  16117. 4.02
  16118. The codes for the various modes are:-SYS“OS_UpdateMEMC‘,768,1792 to turn
  16119. off the VIDC DMA and invoke continuous refresh and
  16120. SYS“OS_UpdateMEMC‘,1536,1792 to return to normal for standard modes.
  16121. 4.02
  16122. It should be pointed out that the continuous refresh mode uses the DMA
  16123. video pointer as the refresh address source, incrementing the pointer
  16124. after use.  As such this should be used with care if the pointer is used
  16125. as an active part of your program whilst the screen is blanked.  (But
  16126. why would you want to move the pointer if you can’t see it??)
  16127. 4.02
  16128. There is also a sound DMA control bit in the MEMC but as this does not
  16129. affect memory refresh bits 8 and 9 which do not need to be altered.
  16130. 4.02
  16131. Bit 11 − 0 Sound DMA disable
  16132. 4.02
  16133.               1 Sound DMA enable
  16134. 4.02
  16135. Rob Swain.
  16136. 4.02
  16137. • Modifying the RISC-OS dot matrix printer driver − To add a new dot
  16138. matrix printer configuration to the RISC-OS printer driver you will need
  16139. to alter the ‘PrData’ file in the ‘!PrinterDM’ directory (on you
  16140. Applications Disc One or RISC-OS Extras Disc = Shareware 17):
  16141. 4.02
  16142. 1)  Make sure you have made a back up copy
  16143. 4.02
  16144. 2)  Run the !Edit program on Applications Disc One
  16145. 4.02
  16146. 3)  Double click on the copy of !PrinterDM that you wish to alter,
  16147. whilst holding the <shift> key down − a filer window will then open with
  16148. the contents of the !PrinterDM application inside
  16149. 4.02
  16150. 4)  Double click on the ‘PrData’ file in the !PrinterDM filer window − a
  16151. text window will then open
  16152. 4.02
  16153. 5)  Use the arrow keys to position the caret (red vertical text cursor)
  16154. just before the ‘Configured options’ heading and after the row of full
  16155. stops
  16156. 4.02
  16157. 6)  Add the following text changing the information to match your
  16158. printer (the example below adds a Shinwa CP80/Lucas LX80 option to the
  16159. RISC-OS printer driver):
  16160. 4.02
  16161.    program segment missing
  16162. 4.02
  16163. Alan Dawes
  16164. 4.02
  16165. • Nevryon hints & tips − Nevryon passwords for level three, five and
  16166. seven are given at the foot of this column, the letters being reversed
  16167. for the benefit of those who prefer to ignore them.
  16168. 4.02
  16169. The following Nevryon cheat allows the ship to be upgraded to have any
  16170. weapons desired and energy/credits/lives may also be altered.
  16171. 4.02
  16172. Load the ‘!Nevryon.Multi’ file on the Nevryon disc 1 and insert the
  16173. following at line 211.
  16174. 4.02
  16175.    211 Dump=PAGE-&3F800:Dump?n=value
  16176. 4.02
  16177. where n is:
  16178. 4.02
  16179. n=27:   Ship speed, 4 recommended
  16180. 4.02
  16181. n=28:   Shield orb (top), 1=ON 0=Off
  16182. 4.02
  16183. n=29:   Shield orb (bottom), 1=ON 0=OFF
  16184. 4.02
  16185. n=30:   RAM, 1=ON, 0=OFF
  16186. 4.02
  16187. n=32:   Gun droids, 0-2
  16188. 4.02
  16189. n=33   Lasers, 0-2
  16190. 4.02
  16191. n=35:   Number of credits (default 3)
  16192. 4.02
  16193. n=36:   Number of lives (default 4)
  16194. 4.02
  16195. n=37:   Starting secondary weapons status, 0=Off, 1=flamer, etc
  16196. 4.02
  16197. n=38:   Gold bar status, 0=OFF, 1=flamer, 2=mines, etc
  16198. 4.02
  16199. n=43:   Amount of energy (default 12)
  16200. 4.02
  16201. Change as many of these values as you want and save altered program and
  16202. repeat the process for the $.Multi file on the Nevryon 2 disc.  Jeremy
  16203. Mears.
  16204. 4.02
  16205.    upside down words missing!
  16206. 4.02
  16207. • Printing a full path name − This is a reply to the cry of help in
  16208. February 1990 from Richard Skemp about how to get the printer driver to
  16209. include the full pathname.  If you add the following line to the Library
  16210. program in the !PrinterDM directory, the printer driver will print the
  16211. full file pathname of any text file you print.
  16212. 4.02
  16213.    3281 BPUT#outfile%, CHR$13+CHR$10 +“Printing file ”+filenam$
  16214. +CHR$13+CHR10+CHR$10
  16215. 4.02
  16216. Lorcan Mongey.
  16217. 4.02
  16218. • Reinstating the filer module − An item on system variables mentions
  16219. that if you *RMFaster the filer module from the desktop, you lose the
  16220. filer icons and can’t get them back (Archive 3.11 p7).  To retrieve
  16221. them, try:
  16222. 4.02
  16223.    <F12>
  16224. 4.02
  16225.    Desktop
  16226. 4.02
  16227.    <Return>
  16228. 4.02
  16229. this doesn’t interfere with anything already in the desktop but re-
  16230. starts any of the default tasks that have been lost, namely Filer,
  16231. PaletteUtil an TaskManager.  Note, however, that if you *RMKill or
  16232. *RMFaster the Task Manager, you can’t get a *prompt by pressing F12!  To
  16233. get around this, make up an Obey file containing the command
  16234. 4.02
  16235.    *Desktop
  16236. 4.02
  16237. and this will do the trick.  It’s quite interesting to see the Task and
  16238. Palette icons in the “wrong” place on the icon bar!  However, I feel
  16239. that you should not deliberately interfere with desktop modules and this
  16240. method should really be regarded as a ‘get-you-home’ technique in case
  16241. of problems.  Lorcan Mongey.
  16242. 4.02
  16243. •REMming your programs − When writing a program, in any language, it is
  16244. good practice to put plenty of comments in to remind oneself what each
  16245. particular section of code does.  However, in BASIC, there are two
  16246. things which tend to deter one from following this practice.  The first
  16247. is that the interpreter has to recognise a REM statement before it knows
  16248. to ignore it.  This takes time, which may be undesirable in procedures
  16249. and loops.  The second deterrent is the amount of space taken by the
  16250. text of the comment, which is stored verbatim in the program.
  16251. 4.02
  16252. I have a practice, when commenting procedures and functions, of placing
  16253. explanatory comments outside the procedure/function block.  For
  16254. instance:
  16255. 4.02
  16256.    program segment missing
  16257. 4.02
  16258. Clearly, the above practice prevents the REM statements from impacting
  16259. the performance of the procedure/function, as they are in section of the
  16260. code which the interpreter will never see.
  16261. 4.02
  16262. This last observation leads to an additional possibility for interpreted
  16263. code (but not for compiled BASIC).  Since the interpreter never sees
  16264. these lines between procedure/function blocks, the normal syntax rules
  16265. can be broken without an error being generated.  Thus, we can save some
  16266. space, as well as execution time, by omitting the REM key words.  Note
  16267. that this will only work if the comments are where the interpreter
  16268. cannot see them.  If you are in the habit of using GOTO statements
  16269. (sometimes a handy way of removing umpteen layers of IF... THEN... ELSE
  16270. statements if you are checking for exceptions and, despite common
  16271. ‘wisdom’, still used frequently by professional programmers), this
  16272. placing of syntactically incorrect code beyond the bounds of a procedure
  16273. block might allow the trapping of such errors as omitting the ENDPROC or
  16274. = statements.  David Hazel.
  16275. 4.02
  16276. • Star LC10 − An undocumented feature on a Star LC10 Colour Printer, is
  16277. that if you open out a file to the printer and try and print characters
  16278. 27 and 102 to it, it prints out the current dip switch setting:
  16279. 4.02
  16280.    program segment missing
  16281. 4.02
  16282. Jason Ede.
  16283. 4.02
  16284. • System Variables (continued from 4.1 p9 & 4.1 p10) − I had had similar
  16285. problems and came up with a different solution which can solve both
  16286. problems, i.e. reading system variables to BASIC and passing system
  16287. variables to the Filer module.  I use a call to OS_EvaluateExpression,
  16288. which can return a numeric or string value, as follows:
  16289. 4.02
  16290.    program segment missing
  16291. 4.02
  16292. This is an artificial example; in practice you would know whether you
  16293. were expecting a numeric value or a string, such as Obey$Dir.  Lorcan
  16294. Mongey.
  16295. 4.02
  16296.  
  16297. • Basic Text File Type − Acorn have specified field type &FD1 for BASIC
  16298. ASCII text.  This is very useful for BASIC programs which are kept in
  16299. !Edit format as it allows the user to define a RunType for them.  For
  16300. example, the following command will cause a BASIC text file to be run
  16301. just like a normal BASIC file:
  16302. 4.03
  16303.    *Set Alias$@RunType_FD1 Basic-quit |“%0|” %*1
  16304. 4.03
  16305. Jim Markland, Cirencester.
  16306. 4.03
  16307. • Converting old Arthur programs to RISC OS − Before the days of RISC-
  16308. OS, programs running under the old Arthur used a form of reconfigure
  16309. system to adjust the CMOS RAM settings.  Now that RISC-OS is available,
  16310. those programs are out of date, and are a pain, as in most cases they
  16311. don’t “Boot-Up” from the desktop.
  16312. 4.03
  16313. RISC-OS uses a different form of reconfiguring.  Two in fact − one is
  16314. the WimpSlot command, which tells the computer the minimum and maximum
  16315. amount of memory the program is going to need and the other uses the
  16316. module MemAlloc, found in the !Lander directory on Application disc 2.
  16317. 4.03
  16318. These two things are quite easy to use.  The only problem is how to find
  16319. out how much room the program is going to use.  This can be discovered
  16320. fairly easily.
  16321. 4.03
  16322. Load up the !Boot file and examine it using the BASIC Editor.  What you
  16323. are looking for are a set of commands/variables, which tell the computer
  16324. the amount of SpriteSize/Screensize, etc it is going to need to run.  To
  16325. convert this, all you need is the MemAlloc module, and in a run file,
  16326. use MemAlloc to allocate the memory needed for the application.
  16327. 4.03
  16328. Here are some examples:
  16329. 4.03
  16330. Holed Out
  16331. 4.03
  16332. 1. Format a fresh new disc
  16333. 4.03
  16334. 2. Create a new directory called !HoledOut
  16335. 4.03
  16336. 3. Copy all the files on the original Holed Out disc, except the !Boot
  16337. file into the new directory.
  16338. 4.03
  16339. 4. Copy MemAlloc into the !HoledOut directory.
  16340. 4.03
  16341. 5. Use !Edit to create the following Obey file:
  16342. 4.03
  16343.    program segment missing
  16344. 4.03
  16345. 6. Load HoledOut 2 into the BASIC Editor and, where the program loads a
  16346. particular file, change it to
  16347. 4.03
  16348.    (LoadCommand) <HoledOut$Dir>. (File to be loaded)
  16349. 4.03
  16350. for example
  16351. 4.03
  16352.    70 *RMLOAD BELL
  16353. 4.03
  16354. change to
  16355. 4.03
  16356.    70 *RMLOAD <HoledOut$Dir>.Bell
  16357. 4.03
  16358. and
  16359. 4.03
  16360.    610 CHAIN “HOLEDOUT3”
  16361. 4.03
  16362. change to
  16363. 4.03
  16364.    610 CHAIN  “<HoledOut$Dir>.HOLEDOUT3”
  16365. 4.03
  16366. etc, etc.
  16367. 4.03
  16368. 7. Do the same as above to the file HOLEDOUT3, wherever the program
  16369. loads a particular file, put the command<HoledOut$Dir>. in front of the
  16370. filename.
  16371. 4.03
  16372. 8. Create a !Sprite file for the application icon and away you go!
  16373. 4.03
  16374. Then HoledOut should run as a RISC-OS application, and will also run off
  16375. a Hard Drive (N.B. I used Holed Out Extra Courses 1)
  16376. 4.03
  16377. Explanation of !Run File:
  16378. 4.03
  16379. Line 1:  Tells the computer to set a directory, and to enter it without
  16380. changing the root directory whenever the <HoledOut$Dir> command is used.
  16381. 4.03
  16382. Line 2:  Allocates the minimum and maximum amount of memory needed to
  16383. run the application.
  16384. 4.03
  16385. Line 3:  Tells the computer to look for the module MemAlloc in memory,
  16386. if it isn’t found then it tells the computer where to find it and loads
  16387. it.
  16388. 4.03
  16389. Lines 4-9:  Tell the computer the memory settings the program needs.
  16390. 4.03
  16391. Line 10:  Kills the module MemAlloc for more memory.
  16392. 4.03
  16393. Line 11:  Runs the actual program.
  16394. 4.03
  16395. Pacmania:
  16396. 4.03
  16397. In this case, things are a little different.  So do the following:
  16398. 4.03
  16399. 1.  Format a new disc.
  16400. 4.03
  16401. 2.  Create a new directory called !PacMania.
  16402. 4.03
  16403. 3.  Copy all the files except !Boot into the new directory.
  16404. 4.03
  16405. 4.  Use !Edit to create an Obey file containing the following...
  16406. 4.03
  16407.    Set PacMania$Dir <Obey$Dir>
  16408. 4.03
  16409.    Run <PacMania$Dir>.!RunLoad
  16410. 4.03
  16411. 5.  Use the BASIC Editor to create a file called !RunLoad...
  16412. 4.03
  16413.    10 *Load <PacMania$Dir>.PacMania 10000
  16414. 4.03
  16415.    20 CALL &100000
  16416. 4.03
  16417. 6.  Create an application !Sprite file.
  16418. 4.03
  16419. PacMania should then run as a RISC-OS application.
  16420. 4.03
  16421. So there we are, I’ve also used another command to help with the loading
  16422. process.  <Obey$Dir> and <(Application name)$Dir>.  These two commands
  16423. tell the computer where to find certain files, no matter where they are. 
  16424. (Hidden in directories on a hard drive for example.)  Duncan Burbidge.
  16425. 4.03
  16426. • Getting Taxan 795 to work with Archimedes.  The Taxan 795 is an
  16427. excellent multi-sync colour monitor, but it was a bit unnerving, on
  16428. unpacking and assembling my new A440 with VIDC Enhancer and 795 monitor,
  16429. to be confronted with a screen which just would not synchronize!  But,
  16430. with help from Paul and from Atomwide, and with a lot of exploration, I
  16431. think that I now know what screen modes it will support and how to get
  16432. them.
  16433. 4.03
  16434. Initially, the trick is to set *CONFIGURE MONITORTYPE 1 and *CONFIGURE
  16435. WIMPMODE20.  Then the machine wakes up in the desktop in mode 20 whether
  16436. or not the VIDC enhancer software (VIDCmodes for the 795) is installed,
  16437. provided that (if it is not installed) the VIDC switch is ‘off’. 
  16438. However, if VIDCmodes is not installed, loading an application which
  16439. changes the mode to one of the basic Archimedes modes (0-17) plunges you
  16440. back into an unsynchronized screen.  Therefore, my initial explorations
  16441. were done with an ordinary monchrome monitor connected to the sync BNC
  16442. socket, after changing two links on the circuit board − as explained on
  16443. page 434 of the RISC-OS user guide.  Options for all Acorn and Atomwide
  16444. modes (except the high-resolution mono mode 23) are listed in the
  16445. accompanying table.  (See opposite.)  Bill Mapleson.
  16446. 4.03
  16447. • Keywords in BASIC − I have found that PRINT ‘SHIFT F1’ showed a lower
  16448. case underline ‘a’.  From BASIC on pressing return to ‘PRINT’ the result
  16449. I found a number that looked just like TIME.  It was.  SHIFT F2 gives
  16450. HIMEM and SHIFT F3 = LOWMEM.  No other Fkey gives a number, but they all
  16451. act as quick entry keys for use in BASIC program writing within ARMB
  16452. edit.  They must be programmed with BASIC keyword token values.
  16453. 4.03
  16454. I expect this is widely known but here is the list for completeness.
  16455. 4.03
  16456.    program segment missing
  16457. 4.03
  16458. Simon Anthony, Nottingham.
  16459. 4.03
  16460. • Locating screen coordinates − When writing wimp programs (out of
  16461. desktop) it’s often hard to plot things because you’re not sure what the
  16462. coordinates of the screen are.  Using the program below, it is possible
  16463. to do this.
  16464. 4.03
  16465.    program segment missing
  16466. 4.03
  16467. I hope the program is of some use to wimp programmers.  Duncan Burbidge.
  16468. 4.03
  16469. • MSDOS installation on hard disc − Here is a summary of the steps for
  16470. getting an MSDOS partition installed onto a hard disc.
  16471. 4.03
  16472. 1. (This step applies only if you have an old PCEmulator, e.g. V1.20,
  16473. and a V1.33 upgrade disc)
  16474. 4.03
  16475. (a) Read ‘ReadMe2’ on the V1.33 disc.
  16476. 4.03
  16477. (b) Run ‘MakePC’ on the V1.33 disc.  (This copies the file !PC.Rom from
  16478. the 1.20 disc to the 1.33 disc.  Although the desktop displays this as a
  16479. ‘text’ file, I reckon that in fact it is the emulator itself and that
  16480. all the other files are concerned with preparing the Archimedes to run
  16481. the Emulator.)
  16482. 4.03
  16483. 2.  Read ‘ReadMe’ on V1.33 but don’t take too much notice of it − it
  16484. confused me a lot!
  16485. 4.03
  16486. 3.  Examine the files !PC.GenBoot.! Config and !PC.GenBoot.!Modules.  If
  16487. you have more than 1M of RAM, it may be worth changing some of the ‘Y’s
  16488. to ’N’s in !Config.  When I first tried it, without any changes, my
  16489. screen went blank because my Taxan 795 monitor requires the VIDC
  16490. Enhancer and the VIDCmodes software installed in order to synchronize
  16491. when not in modes 18-21.  With a 4M machines, I decided to make all the
  16492. response ‘N’ and everything seemed OK.
  16493. 4.03
  16494. 4.  If you have a SCSI hard disc (as I have), run !SCSIDisk.  This
  16495. renames !PC.SCSIRun2 to !PC.!Run2 and !PC.!Run2 to !PC.!ADSF[sic]Run2. 
  16496. That is, it makes !Run2 the file that defines where the MSDOS partition
  16497. is to be placed − on a SCSI hard disc not on an ADFS one.  !SCSIDisk
  16498. then creates a file ‘PC.Drive_C’ on the SCSI disc of the size you
  16499. request (1 to 32M).  This file can be *TYPEd from the Archimedes command
  16500. line − but don’t do it until everything is complete because its contents
  16501. misled me!  The screen then displays information for running two MSDOS
  16502. commands:  FDISK and HDINSTAL.  It also displays the injunction ‘Press
  16503. ESC’ to stop:  Press RETURN to continue‘.
  16504. 4.03
  16505. 5.  If you press <return>, the instructions are cleared from the screen;
  16506. the PC Emulator is loaded, and you are invited to put the MSDOS boot
  16507. disk into ‘DriveA’ (Drive0).  Doing so, and pressing <return>, loads
  16508. MSDOS which asks for date and time − but pressing <return> in response
  16509. to each request supplies the information from the system clock.  When
  16510. the ‘A>’ prompt appears, you need to carry out the instructions that
  16511. were recently wiped off the screen:  Type ‘FDISK’, then ‘1’ to create a
  16512. DOS partition, then ‘Y’ to assign all of file Drive_C to DOS: then
  16513. ‘HDINSTAL’ which formats the hard disc and transfers the MSDOS system
  16514. files from the floppy MSDOS boot disc to the hard disc.
  16515. 4.03
  16516. 6.  If you press ESC (at the ‘ESC to stop, <return> to continue’
  16517. injunction) and need to run !SCSIDisk again, beware that this will re-
  16518. rename the !Run2 files.  I avoided this by ‘Remming’ the *rename
  16519. statements in !SCSIDisk.!RunImage.  (This is a BASIC program from which
  16520. it would appear that the procedure for installing MSDOS on an ADFS hard
  16521. disc would be the same without the complication of renaming the !Run2
  16522. files.)
  16523. 4.03
  16524. 7.  Once MSDOS is safely on the hard disc, the !PC application can be
  16525. transferred from the V1.33 disk to the PC directory on the hard disk.
  16526. 4.03
  16527. 8.  One last complication fo me was that when I type ‘HDINSTAL’ I go the
  16528. quaint message ‘insert new diskette in drive C’ and, on pressing
  16529. <return>, ‘drive not read − format failure’.  Eventually, after many
  16530. hours and several phone calls, the explanation turned out to be that I
  16531. have two external 5.1/4“ drives and MSDOS was seeing the second of these
  16532. as Drive C and the SCSI hard disc as Drive D.  To avoid amending
  16533. HDINSTAL (which is a simple batch file) I told RISC-OS that it had only
  16534. two floppy drives (*CONFIGURE FLOPPIES 2, followed by <ctrl-break>) and
  16535. all went smoothly.  Subsequently I reconfigured to three floppies and
  16536. now MSDOS wakes up with a ‘D>’ prompt ready to run from the hard disc. 
  16537. The most useful tool for finding out what MSDOS thinks it has is to type
  16538. CHKDSKA:.CHKDSKB: etc,
  16539. 4.03
  16540. 9.  Finally, in RISC-OS, lock the ‘Drive_C’ file.  I’m astonished that
  16541. this is not done by the PCEmulator programs.  Without it, a careless
  16542. click in RISC-OS might destroy all your MSDOS files!  Bill Mapleson.
  16543. 4.03
  16544. • Saving your configuration settings − I recently needed to change the
  16545. batteries in my Archimedes but this meant that I would lose the
  16546. configuration settings stored in the CMOS RAM.  I managed to solve the
  16547. problem by writing two small programs that saved and then restored the
  16548. CMOS RAM settings to and from a file.
  16549. 4.03
  16550.    program segment missing
  16551. 4.03
  16552. Sham Gardner, Karlsruhe (Germany).
  16553. 4.03
  16554. (The other way of doing it is to open the computer, switch the computer
  16555. on, change the batteries, switch off and then put the computer back
  16556. together again − but I dare not suggest that you should do that because
  16557. someone might stick a screwdriver into the heavily protected p.s.u. and
  16558. I’d get blames − so I didn’t suggest it, OK? Ed.)
  16559. 4.03
  16560. • Wimpslotting warning.  Always give the maximum amount of memory your
  16561. program is going to use.  Otherwise, the computer will eat up all the
  16562. available memory and use it for the program and you can’t get the memory
  16563. back unless you quit the application!  This happens in FormEd (All
  16564. versions, I would assume).  The FormEd !Run file contains the line:
  16565. 4.03
  16566.    WimpSlot -min 288k
  16567. 4.03
  16568. Using !Edit, change this line to...
  16569. 4.03
  16570.    WimpSlot -min 288k -max 288k
  16571. 4.03
  16572. The program will then run, using up less memory, meaning that both
  16573. !FormEd and !Paint can run at the same time on a 1M machine.  You have
  16574. been warned.  Duncan Burbidge.
  16575. 4.03
  16576.  
  16577. • Cheats − Here are some cheats for various games.  (I suggest that if
  16578. you do any of these, you do not use the original disc, but rather work
  16579. on a copy.  Ed.)
  16580. 4.04
  16581. Cheat for Minerva’s BattleTank  If you run the following program you
  16582. will have however many lives you specified at line 20:
  16583. 4.04
  16584.    program segment missing
  16585. 4.04
  16586. Cheat for 4th Dimension’s Inertia - Type in the following and then each
  16587. time you lose a life, you won’t!
  16588. 4.04
  16589.    program segment missing
  16590. 4.04
  16591. Cheat for 4th Dimension’s Man-At-Arms − The passwords for the 3 stages
  16592. are: INCUBUS, STRANGE and PULSARS
  16593. 4.04
  16594.    progam segment missing
  16595. 4.04
  16596. When you run this program, it will allow you loads of lives, punches and
  16597. lots of energy.  Be careful not to set any of the variables at &FF
  16598. because it does tend to make the program crash!
  16599. 4.04
  16600. Cheat for Minerva’s RedShift − Once the game has loaded, type the
  16601. following:
  16602. 4.04
  16603.    PHASING GERALD
  16604. 4.04
  16605. Note:  When you pressed <11>, the screen will change to the Help screen. 
  16606. Take no notice of this and keep typing the rest of the words in. 
  16607. Remember that there is a space between the two words!
  16608. 4.04
  16609. If you have entered this correctly, you will hear a bleep.  Then just
  16610. press <1> or <2> to play the game and when your Energy is low just press
  16611. <E> and you’ll see the energy level is full again!  Also, when your
  16612. TurboEnergy is low press <T> and you will be back to full strength!
  16613. 4.04
  16614. Cheat for 4th Dimension’s E-Type − The following will give you as many
  16615. minutes as you like to get round each track:
  16616. 4.04
  16617.    program segment missing
  16618. 4.04
  16619. Type in the above and you’ll have all the time you want to round each
  16620. track!  Mark Faulkner.
  16621. 4.04
  16622. • DOS RAM Disc − In DOS, it is possible to set up a RAM disc and indeed,
  16623. for many applications, it is vital to do so if one does not have the
  16624. luxury of a hard disc.  Regular DOS supports a maximum of 640 kbytes of
  16625. RAM, although we did learn about Extended Memory in last month’s
  16626. Archive.  The problem with a DOS RAM disc is that the memory is actually
  16627. taken from the 640k system RAM.  At least it certainly is with current
  16628. versions of the PC Emulator.
  16629. 4.04
  16630. A few months ago, an application appeared on the magazine disc called
  16631. !PCRamDisc.  This made use of the fact that the PC emulator can support
  16632. up to two “hard disc” partitions and that one of these could be in the
  16633. Archimedes RAM disc filing system.  (In fact one of these can be on an
  16634. ADFS floppy!).  In this way, a large RAM disc can be used within DOS
  16635. which does not take anything from the regulation DOS 640k.  This seemed
  16636. a really good idea and I was eager to try it out.
  16637. 4.04
  16638. The program which produced the DOS partition is a variation of the Acorn
  16639. program to construct a hard disc partition but with the filing system
  16640. and paths changed and with the allowed partition sizes also changed to
  16641. more convenient values.  Having created such a partition, the !Run2 file
  16642. must be modified to tell the machine where the partitions are.
  16643. 4.04
  16644. Then, when the emulator is run, the new “drive” must be initialised
  16645. using FDISK and then formatted using FORMAT.  This part really annoyed
  16646. me as I had to do it each time I used the emulator, and I kept for
  16647. getting what to do.
  16648. 4.04
  16649. It seemed a good idea to create a ready-formatted and initialised
  16650. partition before entering the emulator.  I am sure someone could write a
  16651. program to do this, but not me.  Obviously, it would be silly to store,
  16652. say, a 2 megabyte partition in readiness; this is just a waste of space. 
  16653. However, I discovered that an initialised, formatted, but otherwise
  16654. empty DOS partition of one megabyte capacity could be compressed to just
  16655. over a kilobyte using Archimedes ARC, a Public Domain file compression/
  16656. decompression program written by David Pilling.
  16657. 4.04
  16658. On the magazine disc there is an application called !PCRamDisk (note the
  16659. different spelling).  This contains a compressed but empty DOS partition
  16660. which is decompressed into the RAMFS before invoking the PC emulator. 
  16661. Please read the !Help file before using it as the !Run2 file of the
  16662. emulator is overwritten when the application is run.  Brian Cowan.
  16663. 4.04
  16664.  
  16665. Hints and Tips
  16666. 4.5
  16667. •   ANSI C v3 on a SCSI Hard  Disc – After some trial an error, I finally
  16668. managed to install ANSI C v3 correctly on my new Oak SCSI card with 45Mb
  16669. hard disc drive.  Here’s what I had to do:
  16670. 4.5
  16671. First change line 3390 in the ‘InstallNet’ program which is on all three
  16672. of the ANSI C discs so that it reads:
  16673. 4.5
  16674. 3390 DATA “ADFS::0.$”,“NET:$”,“SCSI::SCSIDisc4.$”
  16675. 4.5
  16676. Then run the “InstallHD” program from each disc and always answer ‘Y’ on
  16677. the overwrite options (otherwise, the back up program would stop).
  16678. 4.5
  16679. If you use the included !Cstart obey file, you should not ‘*Set 
  16680. Run$Path’ in your !boot file and you should remember to modify the
  16681. !Cstart file to work with SCSI and not ADFS i.e. c$loc SCSI::4.$
  16682. 4.5
  16683. Atle Baardholt, Norway
  16684. 4.5
  16685. •   Deskjet Plus ink cartridges, recharging − Further to Bill Graham’s
  16686. note in Archive 4.2 p8, I’ve found that Quinx Permanent Black works well
  16687. and is probably cheaper than Art Pen Ink. You do need to be careful that
  16688. you don’t inject more ink than the sponge will absorb, otherwise the
  16689. mess is dreadful!  Stuart Bell, Brighton.
  16690. 4.5
  16691. •   DropShip passwords − Passwords for DropShip are Dahlia, Gaggle, Kaunda
  16692. and Nautch.
  16693. 4.5
  16694. •   ExAllPlus − This is a non-Wimp program which was written in an attempt
  16695. to catalogue my discs. It was designed for use with a single ADFS Floppy
  16696. drive and a SCSI Hard disc together with a Star LC10 printer using
  16697. continuous paper. Other printers may require some alteration to the
  16698. coding.
  16699. 4.5
  16700. Most existing “ExAll” and “CatAll” programs invoke the *EX and *CAT
  16701. calls (!) which produce a lot of unnecessary and confusing duplication
  16702. of libraries, directories etc. (I have memories of the reams of paper
  16703. produced by an  “ExAll” print-out of the original Archimedes Welcome
  16704. disc.) To avoid this, these calls have been re-written so that, in
  16705. addition to other changes, the directory headings have been reduced to
  16706. path descriptions.
  16707. 4.5
  16708. The program will produce both screen and printed listings of either the
  16709. full disc or the root directory. The various options are selected by a
  16710. series of key-strokes and a default screen “ExAll” routine has been set-
  16711. up which can be easily customised.
  16712. 4.5
  16713. Use can be made of the condensed print option to produce catalogue
  16714. listings eight entries wide as against the usual five. This rather
  16715. spoils the screen display in this mode but it was thought useful to
  16716. maintain a check on the output to the printer. When using this option to
  16717. produce “EX” listings the screen display is OK and the reverse feed
  16718. facility of the Star LC10 enables double column print-outs to be
  16719. obtained.
  16720. 4.5
  16721. The “GetType” program is loaded in by the main “ExAllPlus” code and
  16722. contains all the FileType codes I have been able to find but it can
  16723. easily be updated.
  16724. 4.5
  16725. (The listing is far too long to put in the magazine. I have put it on
  16726. the monthly program disc. Ed.)
  16727. 4.5
  16728. Doug Tuddenham
  16729. 4.5
  16730. •   First Word Plus embedded commands − If you switch off the Word
  16731. Processor mode of FWP you can enter printer commands directly into the
  16732. text.  Double bracket command codes e.g. ((n))n1 can be entered to
  16733. change the printer font and style. For example, with a Star LC24-200 in
  16734. the following effects can be achieved:
  16735. 4.5
  16736. Font   ((F))0   Times Roman
  16737. 4.5
  16738.       ((F))1   Sans Serif
  16739. 4.5
  16740.       ((F))2   Courier
  16741. 4.5
  16742.       ((F))3   Prestige
  16743. 4.5
  16744.       ((F))4   Script
  16745. 4.5
  16746.       ((F))5   Draft
  16747. 4.5
  16748. Size   ((S))0   Standard
  16749. 4.5
  16750.       ((S))1   Double Width
  16751. 4.5
  16752.       ((S))2   Double Height
  16753. 4.5
  16754.       ((S))3   Double Width and Height
  16755. 4.5
  16756. Colour   ((C))0   Black
  16757. 4.5
  16758.       ((C))1   Red
  16759. 4.5
  16760.       ((C))2   Blue
  16761. 4.5
  16762.       ((C))3   Violet
  16763. 4.5
  16764.       ((C))4   Yellow
  16765. 4.5
  16766.       ((C))5   Orange
  16767. 4.5
  16768.       ((C))6   Green
  16769. 4.5
  16770. Peter Thomas, Leics
  16771. 4.5
  16772. •   FWP Cut and Paste − It is possible to cut a marked block of text in a
  16773. First Word Plus document and then paste it into another document.  Both
  16774. documents must be loaded first.  This may be obvious but I have only
  16775. just found out – the hard way.  Dave Livsey, Devon
  16776. 4.5
  16777. •   Impression hints & tips − Now that I am using Impression for the
  16778. magazine, there are likely to be a number of hints & tips forthcoming.
  16779. Some of these may be obvious to the more experienced Impression users,
  16780. but bear with me because some of us are only just beginning and, in
  16781. fact, the experiences of someone just starting to use an application can
  16782. often be very helpful to others going through the same hoop. Also, when
  16783. you have been using an application for a while, you build up the feeling
  16784. that you know how it works and there may be facilities which you never
  16785. realised were available which new users pick up. Anyway, here are the
  16786. first few...
  16787. 4.5
  16788. Adding styles to titles − If you want to add a style to a title, be sure
  16789. to select the whole line including the carriage return. In other words
  16790. either put the cursor by the left hand margin and drag down to the next
  16791. line or triple-click somewhere on the line. (I’m sure you all know that
  16792. double-click selects a word, triple-click selects a line and quadruple-
  16793. click (or <ctrl-@>) selects a whole paragraph.) The reason for selecting
  16794. in this way is that if you only select by dragging across the line, you
  16795. omit the carriage return which remains in the base style. The problem
  16796. with this is that if, as in the title lines in Archive, the added style
  16797. says “reduce the space after the paragraph to zero”, the carriage return
  16798. still has the full space-after-paragraph so the paragraph spacing
  16799. remains unchanged.
  16800. 4.5
  16801. Entering point sizes − If you want to change the size of some text, you
  16802. mark it and press <shift-ctrl-S>. If the dialogue box is empty, you can
  16803. type in a number, say 18, and it will assume you mean 18 point. If you
  16804. decide that you want it a bit bigger and press <shift-ctrl-S> again, it
  16805. comes up with “18pt” in the box. If you then type in, say, 2 <return> it
  16806. will interpret the “18pt2” as (18+2)pt and will give you 20pt! (Well, it
  16807. works in version 2.05.) Unfortunately, if you press <-> to try to put,
  16808. say, -2, it seems to interpret it as an escape and closes the box.
  16809. 4.5
  16810. Marking, deleting and re-typing − (This is something that is obvious to
  16811. people coming to Impression via the Mac but may have been missed by
  16812. people brought up through RISC-OS.) If some text is marked, by any
  16813. means, and you want to replace it by some text you are about to type in,
  16814. there is no need to delete the marked text first. As soon as you start
  16815. to type, the marked text is deleted and transferred to the scrap-pad and
  16816. your typing appears in place of it. The deleted text can be used
  16817. elsewhere by pasting it in with <ctrl-V>.
  16818. 4.5
  16819. Quick searching − If you want to find something quickly, find/replace is
  16820. a good way to do it. Call it up with <ctrl-f4> and then, to delete the
  16821. text already in the dialogue box, press <ctrl-U>, then type in the word
  16822. you are looking for and press <return>. (This use of <ctrl-U> applies to
  16823. all dialogue boxes − useful when saving a document under a new name.)
  16824. Remember though that it searches from the cursor downwards, so add a
  16825. <ctrl-uparrow> before calling up the find/replace box. (In the version I
  16826. have, 2.05, the cursor is sometimes not re-displayed in its new position
  16827. after a find/replace has been executed. In other words, it appears to be
  16828. still where you left it but it may actually be further down the document
  16829. so it’s worth getting into the habit of using <ctrl-uparrow> anyway.)
  16830. Also, don’t get tripped up, as I just did. If you set the “case
  16831. sensitive” option, it stays set until you switch it off again. So, if
  16832. you can’t find a word that you know is in there somewhere, check that
  16833. you have not left it in the case-sensitive mode from the last time you
  16834. used it.
  16835. 4.5
  16836. Replacing double spaces − I was trying to do a selective search and
  16837. replace to remove double spaces and replace them with single spaces.
  16838. When I told it to find the next one, it sometimes didn’t appear to mark
  16839. anything. Most peculiar!  Eventually, I realised what was happening. The
  16840. text was fully justified and the double spaces (the same would apply to
  16841. finding single spaces) were between the last word on one line and the
  16842. first on the next line. Thus Impression was marking the infinitesimally
  16843. small space at the end of the line, i.e. was marking nothing at all.
  16844. There’s nothing you can do about it (apart from removing the full
  16845. justification) but at least if you are aware of the problem, you won’t
  16846. be so baffled when it happens.
  16847. 4.5
  16848. Searching for hyphens − In some versions of Impression, it is not
  16849. possible to search and replace hyphens. I discovered this because, for
  16850. ease of typing, I was using a double hyphen where I wanted a dash in the
  16851. text, the idea being to replace them later. Impression refused to find
  16852. any occurrences of hyphen-hyphen. Consultation with CC revealed that
  16853. improvements in automatic hyphenation have resulted in this problem. The
  16854. way round it is to search for — and replace it with −. Note the spaces
  16855. after the backslash and before the 45.
  16856. 4.5
  16857. Smart quotes − If you want smart quotes in a text, i.e. the curly ones
  16858. instead of the straight ones on the key next to the return key, you can
  16859. type them in using <ctrl-]> and <ctrl-\> for single quotes and <shift-
  16860. ctrl-]> and <shift-ctrl-\> for double quotes. However, if you think
  16861. that’s a bit of a fag to remember, use the normal quotes and then,
  16862. before printing, save the file (just in case of operator error!), save
  16863. the text with styles (perhaps to a ram disc as it’s only temporary),
  16864. select the whole text (<ctrl-T>), delete it and finally drop the saved
  16865. text back into the document. As the text is re-loaded, quotes are
  16866. automatically ‘smartened’.
  16867. 4.5
  16868. Switching styles on and off − Those of you brought up in the Mac world
  16869. may not have realised, as I didn’t until today(!) that if you want
  16870. something in, say, bold, all you have to do is press <f4> to switch it
  16871. on, type in the bit that is to be in bold and then press <f4> again. 
  16872. Obvious? Yes, it may be to those who come new to Impression but for
  16873. those of us steeped in Mac techniques, it comes as a welcome surprise.
  16874. 4.5
  16875. If there are things about using Impression that ‘came as a surprise’ to
  16876. you, send them in to us (preferably on disc) and we’ll share them with
  16877. other Impression users. We may even need an Impression Column.
  16878. 4.5
  16879. •   Rotor and other games’ passwords − One way to obtain the Rotor
  16880. passwords (and possibly other games) is to load each of the game’s files
  16881. into !Edit and use the ‘Find’ option to look for the first password. 
  16882. When the password is found, the remaining passwords should be in the
  16883. next couple of lines.  Andrew Campbell, Devon
  16884. 4.5
  16885. •   Sony TV / Monitor − I was told by Beebug that I couldn’t use my Sony
  16886. TV as a monitor with the A3000, but in fact this is quite easy to do. 
  16887. The sony TV requires a signal on pin 16 (blanking input) of the Scart
  16888. plug, which can simply be connected to pin 20 (video input).  Keith
  16889. Raven, Slough
  16890. 4.5
  16891. •   Z88 file transfer − Here is a little utility for people who wish to
  16892. transfer files from the Archimedes straight into suspended memory on the
  16893. Z88.  It saves having to break a file into smaller sections first and,
  16894. of course, there is always a memory overhead in having at least part of
  16895. the file held in the Z88 Filer.  With this BASIC program, the filer is
  16896. by-passed altogether.
  16897. 4.5
  16898.  10 REM >Suspender
  16899. 4.5
  16900.  20 REM Transfer file from Arc to Z88 suspended memory
  16901. 4.5
  16902.  30 REM ** IMPORTANT: Set z88 receive baud rate at 2400 (in panel) **
  16903. 4.5
  16904.  40 *CAT
  16905. 4.5
  16906.  50 *FX 8,5
  16907. 4.5
  16908.  60 INPUT “Send file? ”file$
  16909. 4.5
  16910.  70 *FX 3,119
  16911. 4.5
  16912.  80 OSCLI(“Type ”+file$)
  16913. 4.5
  16914.  90 FOR i%=1 TO 350
  16915. 4.5
  16916. 100 PRINT “#”
  16917. 4.5
  16918. 110 NEXT i% : REM these pad chars are need for certain types of file
  16919. 4.5
  16920. 120 *FX 3,0
  16921. 4.5
  16922. To load a file into PipeDream, enter “:COM” as the “Name of file to
  16923. load” in the files menu.  Then run “Suspender” and immediately press
  16924. <return> on the Z88.  Finally, when the BASIC prompt reappears on the
  16925. Archimedes screen, press <esc> on the Z88.
  16926. 4.5
  16927. It is kinder to your disc drive to copy the target file into the
  16928. Archimedes’ RAM filing system first.
  16929. 4.5
  16930. Jonathan Barnes, Watford
  16931. 4.5
  16932. The following Hints and Tips come from Hugh Eagle of the West Sussex
  16933. Archimedes User Group.
  16934. 4.5
  16935. •   Disappearing paragraph spaces in FWP – If, at the end of a paragraph,
  16936. you type a space immediately before the carriage return, the carriage
  16937. return will be deleted when you subsequently reformat the paragraph.
  16938. Believe it or not, this is a “feature” of First Word Plus (documented in
  16939. the version 1 manual on page 110)!
  16940. 4.5
  16941. •   Loading sprite files – When you double click on a sprite file icon,
  16942. sometimes it is displayed at the bottom left-hand corner of a blank
  16943. screen and sometimes in a !Paint window.  This is because the action the
  16944. computer takes when you try to “run” a sprite file depends on the
  16945. contents of the system variable Alias$@RunType_FF9.  This variable is
  16946. defined by default, when the Archimedes is switched on, as “ScreenLoad
  16947. %0”.  The effect of this is that when you double click on a sprite file
  16948. (type &FF9) icon, the operating system executes the instruction
  16949. *ScreenLoad [filename]; this clears the screen and then displays the
  16950. first sprite in the file at the graphics origin. However, when the
  16951. Desktop Filer “sees” the !Paint application (i.e. when a directory
  16952. window is opened in which !Paint is included) it runs the !Paint.!Boot
  16953. file which, amongst other things, redefines Alias$@RunType_FF9  in such
  16954. a way that when a sprite file is “run” the !Paint application is started
  16955. up (that is if it is not already running) and the file is loaded in.
  16956. 4.5
  16957. •   Listing the contents of your (hard) disk – The operating system
  16958. command “*Count :4.$.* RV” will catalogue the contents of the root
  16959. directory and every sub-directory.  As explained on pages 279/280 of the
  16960. User Guide, the output from this command can be redirected to the
  16961. printer by adapting the command to “*Count :4.$.* RV {printer: } ”
  16962. 4.5
  16963. Note: the spaces around the curly brackets and the > sign are important.
  16964. 4.5
  16965. This method will redirect the output to the printer without displaying
  16966. it on the screen. An alternative method will send all text that is
  16967. displayed on the screen to the printer as well: first press <ctrl-B>
  16968. (i.e. hold down the ctrl key and simultaneously type B), then issue the
  16969. command “*Count :4.$.* RV” then, when the listing has finished, press
  16970. <ctrl-C>.
  16971. 4.5
  16972. •   Removing PC Access –  The menu which appears when you click the menu
  16973. button over any of the PC Access icons on the icon bar has no Quit
  16974. option and the application doesn’t seem to appear in the Task Manager
  16975. window.  In fact, the application does appear in the Task Manager window
  16976. ... in the “Module Tasks” section. Clicking the menu button over the
  16977. application’s name there and moving to the Task ‘PC Access’ sub-menu
  16978. gives a “Quit” option.
  16979. 4.5
  16980. •   Printing via a PC – For some time I have been perplexed to find that
  16981. when I try to print a file created by the Archimedes !PrinterLJ printer
  16982. driver to a LaserJet printer attached to a PC, the printout stops part
  16983. way down the page. At first I thought it must be because of  limited
  16984. memory in the printer so I tried creating the file at a lower print
  16985. density but this made no difference to how much of the page was printed.
  16986. 4.5
  16987. I think I have now hit on the answer, namely that, when using the MS-DOS
  16988. Copy command to print a file which includes control codes, it is a good
  16989. idea to use the /b “switch”, using the syntax:
  16990. 4.5
  16991. copy [filename]/b LPT1
  16992. 4.5
  16993. The insertion of /b after the filename causes MS-DOS to copy in “binary”
  16994. mode: i.e. it copies as many bytes as there are in the file. Otherwise,
  16995. in text mode, copying will continue only until the first end-of-file
  16996. marker (Ctrl-Z or ASCII character 26) is reached whereupon it will stop.
  16997. It is of course highly likely that a graphic printfile of many thousands
  16998. of bytes will contain this character several times, so it is not
  16999. surprising that only part of the page is printed!
  17000. 4.5
  17001. •   Viewing !Draw files – The standard way to view a draw file is to load
  17002. it into !Draw. However, this has an irritating tendency to place the
  17003. part of the picture you want to see outside the visible window. There
  17004. are (at least) two convenient ways of avoiding this problem:
  17005. 4.5
  17006. One is to load the file into the !Display application from Shareware 26.
  17007. The other is to load it into an Impression frame (or, presumably, a
  17008. frame in one of the other DTP applications). In either case, the drawing
  17009. is scaled to fit the frame (the aspect ratio is preserved, so the
  17010. picture fills either the height of the frame or the width). One
  17011. advantage of Impression is that the frame can very easily be resized and
  17012. the drawing thereby magnified; another is that it makes it very simple
  17013. to display a number of drawings on a page and create an illustrated
  17014. catalogue.
  17015. 4.5
  17016. •   Floppy disc E format – So far as I know, the detailed format of ADFS
  17017. discs has not been published either in any of the manuals or in Archive.
  17018. Having recently deleted some files by mistake and been forced into some
  17019. detective work in order to recover them, I thought it might be helpful
  17020. to write down what I have found out about “E” format floppy discs:–
  17021. 4.5
  17022. With two sides, 80 tracks on each side, 5 sectors on each track, the
  17023. disc has 800 sectors of 1024 (&400) bytes each. The sectors can be
  17024. thought of as being numbered from 0 to 799 in the following order:
  17025. 4.5
  17026.    Track   Head   Sector
  17027. 4.5
  17028.        0       0       0
  17029. 4.5
  17030.        0       0       1
  17031. 4.5
  17032.        0       0       2
  17033. 4.5
  17034.        0       0       3
  17035. 4.5
  17036.        0       0       4
  17037. 4.5
  17038.        0       1       0
  17039. 4.5
  17040.        .       .       .
  17041. 4.5
  17042.        0       1       4
  17043. 4.5
  17044.        1       0       0
  17045. 4.5
  17046.        .       .       .
  17047. 4.5
  17048.        .       .       .
  17049. 4.5
  17050.       79       1       4
  17051. 4.5
  17052. Each byte on the disc has a “disc address” equal to the sector number,
  17053. as defined above, times &400 plus the number of bytes into the sector.
  17054. Put it another way:
  17055. 4.5
  17056. the disc address    =   (((( track * 2 ) + head ) * 5 ) + sector ) *
  17057. &400 + bytes into sector
  17058. 4.5
  17059. Map format − The first two sectors on the disc contain duplicate copies
  17060. of the disc map. The first 64 bytes of the map contain the following
  17061. information:
  17062. 4.5
  17063. byte  0   a checksum byte
  17064. 4.5
  17065. bytes 1/2   the number of bits to the place in the map which marks the
  17066. first free space on the disc, counting from the beginning of byte 1 (if
  17067. there is no free space this number will be zero); the top bit of the 16
  17068. is always set, so, for instance, the value &8310 in these two bytes
  17069. would indicate that the first free space in the map could be found &310
  17070. bits or &310 DIV 8 bytes from byte 1, i.e. at byte &63
  17071. 4.5
  17072. byte  3   &FF
  17073. 4.5
  17074. bytes 4-35   the “disc record” as described on pages 1012/3 of the PRM
  17075. containing various details about the disc size, etc. which are the same
  17076. on all “E” format discs, ending with the Disc ID at bytes 24/5 and the
  17077. disc name from byte 26 to byte 35.
  17078. 4.5
  17079. bytes 36-63   reserved (all zero)
  17080. 4.5
  17081. bytes 64-863 (800 bytes) – the actual disc map.
  17082. 4.5
  17083. Each byte in the map represents one disc sector and the contents of the
  17084. map indicate how the disc is divided up between the various objects
  17085. (directories and files) on it. Each portion of the map is at least 2
  17086. bytes long, it begins with an identifying number (max. 15 bits), ends
  17087. with a 1 in the top bit of the last byte and all the bits in between are
  17088. zero. Thus, for instance, if the file with the identifying number 7
  17089. occupies 3 sectors the relevant portion of the map reads as follows:
  17090. 4.5
  17091. first byte   &07
  17092. 4.5
  17093. next byte   &00
  17094. 4.5
  17095. last byte   &80  (1 in the top bit)
  17096. 4.5
  17097. The lowest identifying number is 2 and is reserved for the four sectors
  17098. which are initialised when the disc is formatted and which comprise the
  17099. two map sectors followed by the two sectors containing the root
  17100. directory. Identifying numbers are then allocated, in order, as new
  17101. objects are created.
  17102. 4.5
  17103. A file may be fragmented into several pieces, in which case several
  17104. portions of the map will contain the same identifying number.
  17105. 4.5
  17106. The portions of the map indicating free space on the disc are linked
  17107. together by a chain of pointers. As mentioned above, bytes 1 and 2, at
  17108. the start of the map sector, point to the first free space in the map.
  17109. At that point there is a similar pointer to the next free space (if any)
  17110. and so on until the last free space is reached, where the pointer is
  17111. zero.
  17112. 4.5
  17113. A defective sector on the disc is identified in the map by number 1.
  17114. 4.5
  17115. Directory structure − Each directory takes up two sectors. As mentioned
  17116. above, the root directory occupies the third and fourth sectors on the
  17117. disc (from disc address &800 to &FFF). Any sub-directory can be located
  17118. by looking up the relevant entry in its parent directory, finding the
  17119. identifying number (in the manner described below) and looking up the
  17120. number in the disc map.
  17121. 4.5
  17122. The first five bytes in a directory contain a checksum byte followed by
  17123. the string “Nick”. Then there are up to 77 entries of 26 bytes each
  17124. representing the various objects (files and sub-directories) in the
  17125. directory.
  17126. 4.5
  17127. The format of each of these entries is:
  17128. 4.5
  17129. bytes  0-9   name of file or sub-directory
  17130. 4.5
  17131. bytes 10-13   load address
  17132. 4.5
  17133. bytes 14-17   execution address
  17134. 4.5
  17135. bytes 18-21   file length
  17136. 4.5
  17137. byte  22   sector offset (see below)
  17138. 4.5
  17139. bytes 23-24   identifying number as used in the map
  17140. 4.5
  17141. byte  25   file attributes.
  17142. 4.5
  17143. If the top 12 bits of the load address are all set (i.e. are &FFF) this
  17144. means that the file is “stamped” and the remainder of the load and
  17145. execution address fields are used to record the file type and date stamp
  17146. as follows:
  17147. 4.5
  17148. load address      FFFtttdd
  17149. 4.5
  17150. execution addressdddddddd
  17151. 4.5
  17152. (the bottom byte of the load address field being used for the top byte
  17153. of the 5-byte format date and time record).
  17154. 4.5
  17155. Note: in a disc sector editor which shows the bytes in order with the
  17156. lowest byte of each word first, these 8 bytes will appear as   “dd tt Ft
  17157. FF dd dd dd dd”.
  17158. 4.5
  17159. If not all the top 12 bits are set, the load and execution addresses
  17160. will (as their names suggest) determine what the computer does when the
  17161. file is *LOADed or *RUN (or double-clicked from the Desktop).
  17162. 4.5
  17163. The sector offset in byte 22 is used where two files are mapped into the
  17164. same portion of the disc. In such a case the files share the same
  17165. identifying number (in bytes 23/4) but byte 22 indicates how many
  17166. sectors into the portion each file starts.
  17167. 4.5
  17168. A typical example of this would involve two small files each fitting
  17169. into one disc sector (they might for instance be !Boot, !Run or !Sprites
  17170. files within an application directory). Because the minimum size of a
  17171. map entry is 2 bytes representing 2 sectors on the disc, it would be
  17172. inefficient to give each file a separate map entry, so the two files
  17173. would be made to share. In this case, assuming the shared identifying
  17174. number is say 8, bytes 23 and 24 of the directory entries for both files
  17175. would be &08 and &00 but byte 22 would be &01 for the file that occupies
  17176. the first sector and &02 for the second.
  17177. 4.5
  17178. In the usual situation where a file has a map entry to itself, byte 22
  17179. is zero.
  17180. 4.5
  17181. The bits of byte 25 (the file attributes byte) are used as follows:
  17182. 4.5
  17183. bit  0   object has read access for you
  17184. 4.5
  17185. bit  1   object has write access for you
  17186. 4.5
  17187. bit  2   undefined
  17188. 4.5
  17189. bit  3   object is locked against deletion
  17190. 4.5
  17191. bit  4   object has read access for others
  17192. 4.5
  17193. bit  5   object has write access for others
  17194. 4.5
  17195. bit  6   undefined
  17196. 4.5
  17197. bit  7   undefined
  17198. 4.5
  17199. Bits 4 and 5 only have meaning to the network filing system. Bits 2, 6
  17200. and 7 should be set to zero.
  17201. 4.5
  17202. General note: If you want to explore disc maps and directories it is
  17203. very handy to have a disc sector editor such as the !DiscEdit appli
  17204. cation on Careware 2. Failing that it is reasonably easy to construct a
  17205. program to read from a disc sector by sector (rather than file by file)
  17206. and to display the contents. The key to such a program is the SWI call
  17207. “ADFS_DiscOp”. For instance, the BASIC instruction:
  17208. 4.5
  17209. SYS “ADFS_DiscOp”,0,1,address%,buffer%,length%
  17210. 4.5
  17211. will read starting at the “disc address” (as defined above) given in the
  17212. variable address%, the number of bytes given in length% (1024 for one
  17213. sector) into the address in RAM stored in buffer%. Obviously, a certain
  17214. amount of caution is advisable since a very similar command (replacing 1
  17215. with 2 for instance) could result in writing to and corrupting the
  17216. contents of a disc.
  17217. 4.5
  17218.  
  17219. 4.5
  17220.  
  17221. 4.5
  17222. {4 .5
  17223. •   Caverns − A simple map and the passwords are given at the end of the
  17224. magazine on page 60. Neil Berry
  17225.  
  17226. Impression Hints and Tips
  17227. 4.6
  17228. Here are a few more hints and tips mostly from the editor’s dabblings in
  17229. preparing the magazine...
  17230. 4.6
  17231. •   Dashes − If you, like me, don’t like to see hyphens used where dashes
  17232. should be used − i.e. in places like this − you will probably be sick
  17233. and fed up of typing <alt-153>. (Note that the character in “alt-153” is
  17234. a hyphen, just in case you weren’t aware of the difference.) If you are
  17235. importing text into Impression, occurrences of ‘hyphen hyphen’ will be
  17236. converted automatically by Impression into a long dash — see what I
  17237. mean. Personally, I prefer the shorter one so what I have done is set up
  17238. the abbreviation dictionary with ‘expand as you type’ and used an
  17239. underline character to be turned into a dash. The only drawback is that
  17240. it’s OK for things like the dashes earlier in this paragraph, but if,
  17241. for example, you use dashes in phone numbers, as 0603−766592, the
  17242. abbreviation technique does not work and you are back to  <alt-153>.
  17243. Anyone any other ideas?
  17244. 4.6
  17245. •   Find styles − If you want to find a style, get up the find/replace box
  17246. with <ctrl-f4> and then click in the menu box to the right of the Find
  17247. box and select the style you are looking for. This will come up as, say,
  17248. “”. Type an “@” after this − which stands for “any text” − and then
  17249. press <return>. This will highlight the whole of the first piece of text
  17250. with that style or effect. Unfortunately, the facility to replace that
  17251. style with another style is not yet working. If you do want to do any
  17252. search and replace on the style names, export the text, with styles, and
  17253. then use another WP such as !Edit to do the searching and replacing
  17254. before returning it to Impression.
  17255. 4.6
  17256. •   Rogue effects − Someone sent me a file in which they had used a
  17257. particular font which I did not have so when I loaded the file,
  17258. Impression told me it was changing it to Trinity.medium. I did an edit-
  17259. style and looked at all the style definitions to no avail. Eventually, I
  17260. realised that it must have been used as an effect, so how was I to find
  17261. it and eliminate it or change it to some font I did possess? Because the
  17262. font had been changed to Trinity.medium (i.e. the BaseStyle font) I
  17263. could not pick it out with a visual scan so the first idea was to change
  17264. the BaseStyle to, say, Zapf.Dingbats so that anything which was in a
  17265. different font was obviously an effect or a style. Unfortunately, this
  17266. didn’t reveal the offending effect. At this point, I became convinced
  17267. that I had a non-existent, un-removable effect, i.e. a bug in Impres
  17268. sion. So I sent the offending file to CC who informed me that the
  17269. particular effect WAS in the text and they also showed me how to locate
  17270. it... as follows...
  17271. 4.6
  17272. (Actually, the reason that I couldn’t find the effect was that I had
  17273. already gone through the document adding extra styles and had covered
  17274. this rogue font-change effect with a font-change style of my own. In
  17275. other words, the style, because it was applied later than the effect,
  17276. took precedence.)
  17277. 4.6
  17278. •   Finding effects − In the same way that you can find styles (see above)
  17279. you can also find effects as long as you tell Impression that you want
  17280. effects to be shown on the style menu. To do this, locate the file “UK”
  17281. in the Impression “Resources” directory. Load it into !Edit and find
  17282. “Cnf1:” and change it to “Cnf1:E” − that’s a one, not a letter “l”. Save
  17283. the file and shut down and re-start Impression. You then will have
  17284. effects on your style menus and search on {“effectname” }@, as explained
  17285. above.
  17286. 4.6
  17287. •   Fast search and replace − There are a couple of very useful keyboard
  17288. short-cuts not documented in the manual which speed up the search and
  17289. replace. When the “text found” box is on screen, <ctrl-R> does a
  17290. “Replace” and <ctrl-N> moves to the “Next”.
  17291. 4.6
  17292. •   Keyboard short-cuts − Apart from the ones listed on pages 119ff of the
  17293. Impression manual, here are a few more: (some are mentioned on the menu,
  17294. but not in manual)
  17295. 4.6
  17296. <ctrl-shift-D> go to chapter
  17297. 4.6
  17298. <ctrl-shift-H> produces a bullet i.e. a “•”.
  17299. 4.6
  17300. <ctrl-shift-I> also produces a bullet i.e. a “•”!
  17301. 4.6
  17302. <ctrl-shift-J> produces superscript
  17303. 4.6
  17304. <ctrl-shift-K> produces subscript
  17305. 4.6
  17306. <ctrl-shift-T> save text story
  17307. 4.6
  17308. •   Page number justification problems − Some of you may have had
  17309. difficulty getting correct centring or right justification of page
  17310. numbers on footers. This is corrected in version 2.09 − well, almost!
  17311. The footers on right hand pages were wrong last month, when I was using
  17312. version 2.05, (in fact I didn’t even notice!) and the footers on the
  17313. left hand pages would have been wrong this month (with 2.09) if I had
  17314. not found a way round it. If you try to have left aligned page number
  17315. with a right tabbed piece of text, the text suffers a left shift. I’ve
  17316. solved it for now by splitting the footer text into two separate frames,
  17317. one left aligned and the other right aligned. It’s messy, but it works. 
  17318. A
  17319. 4.6
  17320.  
  17321. Hints and Tips
  17322. 4.7
  17323. •   Ballarena − I would advise using the mouse to control your ‘bat’
  17324. because the keyboard is not very responsive. Also, note that the ‘Auto’
  17325. bat does not always respond fast enough to catch the ball, and there is
  17326. nothing you can do about it! I was very disappointed in the final
  17327. message which just congratulates you, and ends your game. The passwords
  17328. are: PUNKANDJUMP, MONTPELLIER, SEA SEX SUN, VL 86 C 010, MOUNTAINEERS,
  17329. GRENOUILLE, BLUBEDILOMAR, BRAIN KILLER, RHYTHM BOX, BOUBOULOID, MENFOU,
  17330. 32 BIT POWER, MARTINI, SEE YOU SOON, ETERNA. Mike Gregory (& Russell
  17331. Lamb).
  17332. 4.7
  17333. •   Changing !Edit’s default file types − Answering my own Help!!! plea in
  17334. Archive here’s how to change the default filetypes for !Edit:
  17335. 4.7
  17336. *DIR ADFS::4.$.RISC-OS.!Edit
  17337. 4.7
  17338.  (or your path here)
  17339. 4.7
  17340. *GOS
  17341. 4.7
  17342. *L. !RUNIMAGE 8000
  17343. 4.7
  17344. *BREAKSET 8004
  17345. 4.7
  17346. *GO 8000
  17347. 4.7
  17348. *SAVE “!RUNIMAGE” 8000+1F2C0
  17349. 4.7
  17350.  8008 8000
  17351. 4.7
  17352. *BASIC
  17353. 4.7
  17354. *L. !RUNIMAGE 8F00
  17355. 4.7
  17356. $&1B208=“ReadMe” These can be changed
  17357. 4.7
  17358. $&1B214=“DataFile” to suit your needs
  17359. 4.7
  17360. $&1B220=“ExecFile” with any string up
  17361. 4.7
  17362. $&1B22C=“EditFile” to 10chars in
  17363. 4.7
  17364. $&1B238=“!Run”        length.
  17365. 4.7
  17366. *SAVE !RUNIMAGE 8F00+1F2C0 8008 8000
  17367. 4.7
  17368. Rob Davison, Southland, New Zealand
  17369. 4.7
  17370. •   ‘Cheapo’ dialog boxes − You can make use of Wimp_ReportError instead
  17371. of writing code for a dialog box when programming wimps. The following
  17372. code fragment is an example:
  17373. 4.7
  17374. DEFPROCsave_file(name$)
  17375. 4.7
  17376. IF FNfile_there(name$) THEN IF
  17377. 4.7
  17378.  FNdialog(“A file of that
  17379. 4.7
  17380. name exists. Overwrite it?“)=FALSE THEN ENDPROC
  17381. 4.7
  17382. REM save file
  17383. 4.7
  17384. ENDPROC
  17385. 4.7
  17386.  
  17387. 4.7
  17388. DEFFNdialog(str1$):!block%=1
  17389. 4.7
  17390. :$(block%+4)=str1$
  17391. 4.7
  17392. SYS“Wimp_ReportError”,block%,
  17393. 4.7
  17394. 19,“Message from
  17395. 4.7
  17396. applic“ TO ,resp%
  17397. 4.7
  17398. =resp%=1
  17399. 4.7
  17400. where the string “Message From Application” is <20 characters in length.
  17401. 4.7
  17402. The only disadvantages are that all other desktop activity is suspended,
  17403. the machine beeps (if wimpflags bit 4 is not set) and that the user has
  17404. to answer “OK” or “CANCEL” instead of the more logical “YES” or “NO”.
  17405. However, this saves a great deal of programming and can be very useful
  17406. at times (This is why FWP2 stops printing − See Archive 3.10 p 25). Rob
  17407. Davison, New Zealand.
  17408. 4.7
  17409. •   Cleaning A310 keyboard contacts − I recently had a very nasty
  17410. intermittent fault on my A310. It began as a line of 222222222’s being
  17411. printed at the cursor, for no apparent reason. Also the ‘2’ key of the
  17412. numbers keypad wouldn’t function occasionally. This was accompanied by a
  17413. more worrying symptom where the screen display would suddenly go hay-
  17414. wire and only occasionally would right itself after switching the
  17415. machine off and then on.
  17416. 4.7
  17417. Eventually, it was cured by cleaning the key-contact of the ‘2’ (keypad)
  17418. and on the basis of “If it works, don’t fix it”, I didn’t clean any
  17419. other keys. After having the machine checked at a local dealer (£17.50)
  17420. and some discussion with Archives’ Technical Help, it was assumed that
  17421. the screen break-up was due to CMOS *Configuration settings somehow
  17422. being changed to Monitor-Multisync, by the spurious keyboard input. The
  17423. problem has not occurred since.
  17424. 4.7
  17425. For anyone else with keyboard problems, here’s how I cleaned mine: Lay
  17426. the keyboard upside-down and remove all 8 screws under the keyboard base
  17427. and gently lift off the base. Remove the 6 larger screws, securing the
  17428. PCB to the keyboard top-cover. Lift out the complete PCB and keys unit.
  17429. The keytops are all secured in a frame which is, in turn, secured by 20-
  17430. odd small screws from the PCB underside. Take them all out (and put them
  17431. somewhere safe) and, keeping the whole kaboodle together with a firm
  17432. grip, turn it over and set it down right-side up. The complete set of
  17433. keys can now be lifted slowly off the PCB, exposing the rubber contact/
  17434. covers. These are glued with a weak glue. I found that all the rubber
  17435. bits stayed stuck to the PCB. I gently peeled away the rubber contact/
  17436. cover at the offending key position and marvelled at how the dirt had
  17437. managed to penetrate so far, considering that the cover was stuck down.
  17438. The keyboard key contacts (A310) are just gold plated discs of PCB
  17439. copper, easily cleaned with switch cleaner and a non-hairy paper-towel
  17440. or cloth. If you have to blow away any bits, use a camera ‘puffer
  17441. brush’. If you have to use your mouth to blow away grit, crumbs etc,
  17442. wait for any teeny drops of condensation to evaporate. Spit doesn’t make
  17443. a good contact cleaner and some spirit-based cleaners may tend to
  17444. dissolve the pcb-surface varnish which will be smeared over the
  17445. contacts’ surface. Your local electronics hobby shop (e.g. Tandy) should
  17446. have cans of switch-cleaner at £2 − £3 (which is a lot cheaper than £120
  17447. for a new keyboard(!) and well worth the extra effort of DIY).
  17448. 4.7
  17449. D.P.Allen, Surrey
  17450. 4.7
  17451. •   Data cartridges for tape streamers revisited − Further to the hint in
  17452. 3.6 p2, the metal variety of DAT can become unreliable after three or
  17453. four writes and so it is better to use the non-metal variety e.g.
  17454. Memorex tapes. Mr Chapman, London
  17455. 4.7
  17456. •   RISC-OS printing hints − Printing out with the RISC-OS printer drivers
  17457. is very easy. However I found several areas which are not well explained
  17458. and one or two things which are down right misleading!
  17459. 4.7
  17460. •   PRM pages 1526-1528 sprite plotting commands must be with reference to
  17461. the address of the sprite not the name, so if you use
  17462. 4.7
  17463. SYS “OS_SpriteOp”,&122,
  17464. 4.7
  17465. spriteaddr%,“name”,0
  17466. 4.7
  17467. ,xpos%,ypos%
  17468. 4.7
  17469. then, when printing, the error “Sprite Not known” will be returned. The
  17470. solution is to use &222 and an address instead of the sprite name.
  17471. Addresses for a named sprite can be found with
  17472. 4.7
  17473. SYS“OS_SpriteOp”,&118
  17474. 4.7
  17475. addr is in R2 on exit − see PRM page 406.
  17476. 4.7
  17477. •   PRM page 1532. Always use −1 (for current) as the destination mode
  17478. with “ColourTrans_Select-Table” if you specify a mode (even the current
  17479. one) ColourTrans will not set up the table correctly resulting in
  17480. strange looking sprites on printout.
  17481. 4.7
  17482. •   When rendering Draw objects remember to decrease ‘flatness’ to a lower
  17483. value. A useful way of calculating it is to divide the default (512) by
  17484. the print resolution divided by 90 eg. flat= 512/(printxres%/90) where
  17485. printxres% might be 300 − as read from
  17486. 4.7
  17487. SYS “PDriver_Info” TO,printxres%
  17488. 4.7
  17489. printyres% the 90 comes from a normal approximately 90 dots per inch on
  17490. screen. Rob Davison, Southland, New Zealand
  17491. 4.7
  17492. •   Saving the CMOS RAM settings − In recent editions of Archive (e.g.
  17493. 4.3, p.10 and 4.5, p. 21) there have been repeated mentions of the
  17494. problem which arises when a battery failure deletes all the information
  17495. in the CMOS RAM.
  17496. 4.7
  17497. There is one very simple way of solving this problem: On Careware Nº 6
  17498. you will find the application !SysUtil by Jon Marten; one of the choices
  17499. it offers is “Save Configuration”!
  17500. 4.7
  17501. All you have to do is copy the Utility and the “ConfigFile” it produces
  17502. to some disc where they are easily accessible − not the hard disk!
  17503. 4.7
  17504. After the dreaded memory loss you simply load !SysUtil and drag the
  17505. ConfigFile icon onto the !SysUtil icon and confirm that you want to
  17506. change the configuration. Jochen Konietzko, Koeln, Germany
  17507. 4.7
  17508. •   Shutdown of hard drives − During the recent experience I have had due
  17509. to the volume of hardware I’ve been setting up and testing, the
  17510. following items have come to light.
  17511. 4.7
  17512. MR45’s seemed to be suffering from corruption but, when reformatted, the
  17513. problem went away, so where did the corruption come from?
  17514. 4.7
  17515. A little further investigation revealed that a verify scan caused the
  17516. Closedown procedure of the drive not to occur.
  17517. 4.7
  17518. It was found that, in order to close the drive down properly, a *bye and
  17519. two ªShutdowns were required! At first, this was thought to only relate
  17520. to MR45’s but, in fact, it has been found that this is not so, and even
  17521. my own machine (A440/1 with standard Acorn hardware) does similar
  17522. things.
  17523. 4.7
  17524. So, how do you know whether your hard drive is shut down properly? If an
  17525. <f12> is followed by a *bye, a staccato blip from the drive LED should
  17526. occur and a short sharp click noise should emit from the drive itself.
  17527. This is not the closedown condition.
  17528. 4.7
  17529. A *shutdown will now give a flickering performance from the drive LED
  17530. and a multiple clicking from the drive lasting about half a second.This
  17531. is the shutdown condition with the heads parked and isolated from the
  17532. discs and closedown of the system can now occur. Ray Maidstone, Norwich.
  17533. 4.7
  17534. •   !UIM_Hack update (cf Archive 3.10 p 9) − This utility allows you to
  17535. edit characters in The 4th Dimension’s U.I.M. game. It has now been
  17536. updated and improved by the author, David Sheperdson, and has been put
  17537. on this month’s program disc.
  17538. 4.7
  17539. Impression Hints and Tips
  17540. 4.7
  17541. •   Beware thin lines − It seems that Impression can’t cope with the very
  17542. thinnest lines that Draw can produce. It does not display them properly
  17543. on the screen and sometimes doesn’t print them properly. The answer is
  17544. to use 1 mm lines instead. This came to light when Brian Cowan was using
  17545. graphs generated by the graph plotting utility (on Shareware Nº 31)
  17546. which apparently uses these thin lines. (This has only been tested in
  17547. version 2.05.)
  17548. 4.7
  17549. •   Double-clicking on a graphic opens the “alter graphic” window, (For
  17550. those who don’t read manuals.)
  17551. 4.7
  17552. •   Help! − Does anyone know how to create a new Master Page based on an
  17553. existing master page? It’s a real pain to have to change the margins
  17554. every time you create a new master page. Why can’t you have a new master
  17555. page just slightly different from an existing one? The particular
  17556. application was where I wanted to try two, three, four, five columns
  17557. etc. for a document and every time I wanted to change the number of
  17558. columns, I had to create a new master page, changing the margins from to
  17559. the 5 mm I wanted before changing the number of columns and the inter-
  17560. column gap. (Mind you, I did find one short-cut as a result of having to
  17561. do this over and over again. If you click in the first margin box, you
  17562. can use <ctrl-U> to remove the “12.7mm”, then press <5> and then <down>
  17563. will move you to the next box and you can repeat the <ctrl-U>, <5>,
  17564. <down> for each box. This applies to most of the dialogue boxes − <down>
  17565. moves you to the next box requiring input. Yes, I know it says this in
  17566. the manual, but I didn’t see it.)
  17567. 4.7
  17568. Anyway, can I put my plea another way? Is there any way of editing a
  17569. master page other than sliding the boxes around? Can you edit, by
  17570. entering numbers, the sizes of the margins, for example?
  17571. 4.7
  17572. •   Search & replace again − We mentioned last month that, when doing a
  17573. find and replace, <ctrl-N> finds the Next occurrence, <ctrl-R> does a
  17574. Replace of the marked text. Be warned though that, if the find box is
  17575. on-screen, <ctrl-A> no longer deletes the character at the cursor (as
  17576. <copy> does) it forces All the replaces to occur from the cursor
  17577. downwards to the very end of the document. I found this the hard way
  17578. while attempting to do a selective search and replace at the top of a
  17579. large document. I was changing a column of words into a list by
  17580. replacing
  17581. 4.7
  17582.  with a comma and a space. You can just imagine the havoc that the
  17583. “replace all” command reeked on my (unsaved!!!) document. You have been
  17584. warned! By the way, <ctrl-E>, presumably relating to Every or End, has
  17585. exactly the same effect as <ctrl-A>. (This has only been tested on
  17586. 2.09.)
  17587. 4.7
  17588. •   Transferring text between documents − In Archive 4.2 p.8, there was a
  17589. hint about the transfer of text between two documents. The implication
  17590. was that this was not possible with Impression. This is not true − it is
  17591. just done differently. You select the text in question, press <ctrl-C>,
  17592. move to the appropriate spot in the other document, click once and
  17593. insert the text with <ctrl-V>! Jochen Konietzko, Koeln, Germany  A
  17594. 4.7
  17595.  
  17596. Hints and Tips
  17597. 4.8
  17598. •   ARM code errata − The following is for all those who have an unshak
  17599. able faith in the integrity of Acorn’s code:
  17600. 4.8
  17601. The code given to return from SWI “OS_ BreakPt” on page 736 of the PRMs
  17602. is incorrect. The following works.
  17603. 4.8
  17604. .backtobreak%
  17605. 4.8
  17606.    SWI “OS_EnterOS”
  17607. 4.8
  17608.    ADR R14,breaksave
  17609. 4.8
  17610.    LDMIA R14,{r0-r14 }^
  17611. 4.8
  17612.    LDR R14,[R14,#15*4]
  17613. 4.8
  17614.    ADD R14,R14,#4
  17615. 4.8
  17616.    MOVS PC,R14
  17617. 4.8
  17618. The code given on page 231 of the old BASIC User Guide (under CALL) is
  17619. incorrect. For example, to use MATCH, the line tokenisation routine, the
  17620. following code will work. This has been corrected in the new BASIC User
  17621. Guide.
  17622. 4.8
  17623. .tokenise
  17624. 4.8
  17625.    STMFD R13!,{r14 }
  17626. 4.8
  17627.    ADD R0,R14,#18*4
  17628. 4.8
  17629.    ADR R1,source
  17630. 4.8
  17631.    ADR R2,dest
  17632. 4.8
  17633.    MOV R3,#1
  17634. 4.8
  17635.    MOV R4,#0
  17636. 4.8
  17637.    ADR R14,cominghome
  17638. 4.8
  17639.    MOV PC,R0
  17640. 4.8
  17641. .cominghome
  17642. 4.8
  17643.    LDMFD R13!,{pc }
  17644. 4.8
  17645. .source
  17646. 4.8
  17647.    EQUS STRING$(90,CHR$(0))  ALIGN
  17648. 4.8
  17649. .dest
  17650. 4.8
  17651.    EQUS STRING$(90,CHR$(0))  ALIGN
  17652. 4.8
  17653. J Heher, South Africa
  17654. 4.8
  17655. •   BASIC printing to a DeskJet Plus − The April issue of Archive
  17656. contained a Help!!! plea about printing from Archimedes BASIC to a
  17657. DeskJet 500. I have a DeskJet Plus and have successfully printed from
  17658. BASIC. For reference, my printer is normally set with the function
  17659. switches 6 and 8 in bank A and 2 in bank B up, all others are down.
  17660. 4.8
  17661. To print, I use the command VDU 2,1,27,1,38, 1,107,1,49,1,71 (see Line
  17662. Termination in Appendix 8.19 of the Owner’s Manual). Here is an example
  17663. of how it can be used:
  17664. 4.8
  17665.  10 REM >PrintTest
  17666. 4.8
  17667.  20 VDU 2,1,27,1,38,1,107,1,49,1,71
  17668. 4.8
  17669.  30 PRINT “TEST OF NORMAL PRINTING”
  17670. 4.8
  17671.  40 VDU 1,27,1,38,1,100,1,49,1,68
  17672. 4.8
  17673.  50 PRINT “This is underlined”
  17674. 4.8
  17675.  60 VDU 1,27,1,38,100,1,64
  17676. 4.8
  17677.  70 VDU 1,27,1,40,1,115,1,51,1,66
  17678. 4.8
  17679.  80 PRINT “This is BOLD printing”
  17680. 4.8
  17681.  90 VDU 1,27,1,40,1,115,1,48,1,66
  17682. 4.8
  17683. 100 VDU 1,27,1,40,1,115,1,50,1,48, 1,72
  17684. 4.8
  17685. 110 PRINT “This is 20 PITCH”
  17686. 4.8
  17687. 120 VDU 1,27,1,69 :REM reset printer
  17688. 4.8
  17689. 130 VDU 3
  17690. 4.8
  17691. 140 END
  17692. 4.8
  17693. A Kitchenside, Weybridge
  17694. 4.8
  17695. •   Big memory tips − As a footnote to my own article in last month’s
  17696. Archive on making best use of machines with more than 1M memory, I’d
  17697. like to add one more tip. I was reminded by a review of Protext, which
  17698. noted that the current version does not multi-task, that my eleventh tip
  17699. might have been, “boycott non multi-tasking packages”. Since, with 1M,
  17700. you couldn’t really multi-task two significant applications, this was
  17701. not a problem. Now, it’s a real pain in the neck not to be able to have
  17702. several applications with simultaneously active windows, much of the
  17703. power and ease-of-use of RISC-OS is being un-used and it’s annoying
  17704. knowing that 3M of your upgrade is being wasted!
  17705. 4.8
  17706. So, unless there’s a really good reason such as a time-critical sound
  17707. sampler or video screen grabber, I suggest that we boycott such
  17708. packages. Then, software producers would have to bring them up to date
  17709. and not try to palm us off with “Arthur programs with !Run and !Boot
  17710. files”. In an ideal world, software sellers would refuse to stock them
  17711. but at least they could be marked as such, perhaps indicating their
  17712. antiquity by listing them in a suitable script? Stuart Bell, Brighton.
  17713. 4.8
  17714. •   C book − I was recommended a good C book which I used on a C short
  17715. course I attended: The Waite Group’s “New C Primer Plus”, First Edition
  17716. 1990, editor Howard W Sams & Co, ISBN 0−672−22687−1. It covers ANSI C,
  17717. UNIX, Microsoft C and Turbo C.   S. Stel, Netherlands.
  17718. 4.8
  17719. •   ChangeFSI update − A new version of ChangeFSI v0.79 is available from
  17720. Acorn Direct for £19.95. This will handle more image formats than would
  17721. v0.69: Degas PI1, PI2 & PI3, !Translator Clear, MacPaint 579x720x1 bit/
  17722. pixel, ZSoft .PCX, Windows3 .BMP, Pineapple 16 bit/pixel, UNIX rle, PC
  17723. TGA. Unfortunately it will not run from the desktop under !ChangeFSI
  17724. (Shareware Disc 21) as is. This is because version 0.79 is 94 Kbytes
  17725. long, compared with 74K for v0.69. The solution is to edit the !Run file
  17726. of !ChangeFSI and increase the WimpSlot from 128K to 160K. All is then
  17727. well. A Quayle, Chester
  17728. 4.8
  17729. •   C txt library − This idea was inspired by the article ‘Introduction to
  17730. C’ – Part 5, in Archive 3.6. This gave a complete RISC-OS application
  17731. using the libraries supplied with Release 3 of Acorn C. In particular,
  17732. it used the ‘txt’ library to provide a window to display text generated
  17733. by the sample program. This requires a minimum of effort by the
  17734. programmer since the library looks after most of the problems.
  17735. 4.8
  17736. Although it works as described, it has two major disadvantages. The
  17737. first is the slow speed during text generation. The second is the
  17738. operation of the window controls. In particular, the cursor control keys
  17739. cannot be used to move the text through the window, the close icon has
  17740. no effect and the vertical scroll bars can only be dragged. Here are
  17741. some techniques which overcome these problems.
  17742. 4.8
  17743. Improved text generation speed turns out to be a very simple modifi
  17744. cation since the cause of the slow operation is the redrawing of the
  17745. window for every item added to the text buffer using, for example, the
  17746. txt_insertstring function. Two extra lines are required; the first turns
  17747. off the display updates when text generation starts and the second turns
  17748. it back on when the operation is complete. The lines shown below should
  17749. be inserted immediately after the visdelay_begin() statement and
  17750. immediately before the visdelay_ end() statement in the original program
  17751. function sysvars_to_text().
  17752. 4.8
  17753. /* turn off display update */
  17754. 4.8
  17755. txt_setcharoptions(t, txt_DISPLAY, FALSE);
  17756. 4.8
  17757.  
  17758. 4.8
  17759. /* turn on display update */
  17760. 4.8
  17761. txt_setcharoptions(t, txt_DISPLAY, TRUE);
  17762. 4.8
  17763. Improving text window control requires rather more code but again the
  17764. principle is fairly straightforward. Firstly an event handler has to be
  17765. registered for the text window following its successful creation by the
  17766. txt_new() function using the following statement:
  17767. 4.8
  17768. /* register the text window event handler */
  17769. 4.8
  17770. txt_eventhandler(t, user_txevent, NULL);
  17771. 4.8
  17772. This registers the function user_txevent which will be called to process
  17773. text window events.
  17774. 4.8
  17775. The function itself has to process all the events which the user
  17776. requires. A sample function is given below which is commented to show
  17777. which events are being processed. The keyboard key macro definitions
  17778. given in ‘akbd.h’ are used for consistency but, in addition, the ‘Home’
  17779. key must also be defined using a macro as this is omitted from ‘akbd.h’.
  17780. The actual key values required are defined in the PRM, page 1198 and the
  17781. macro definitions are given in file ‘akbd.h’. Note, however, that the
  17782. definitions given for both akbd_ PageUpK and akbd_PageDownK are wrong so
  17783. I have not used these but used their correct definition in the following
  17784. code. The value txt_ EXTRACODE is added to the key value to represent
  17785. the equivalent window operation. A full list of these is given on page
  17786. 325 of the ANSI C Release 3.
  17787. 4.8
  17788.  
  17789. 4.8
  17790. #include “akbd.h”
  17791. 4.8
  17792.  
  17793. 4.8
  17794. #define HOME        (30)
  17795. 4.8
  17796.  
  17797. 4.8
  17798. /***********************************
  17799. 4.8
  17800. user_txevent    text window event handler
  17801. 4.8
  17802.         t            text object
  17803. 4.8
  17804.         h            event handle
  17805. 4.8
  17806. ***********************************/
  17807. 4.8
  17808. void user_txevent(txt t, void *h)
  17809. 4.8
  17810. {lines ; /* number of lines in window */
  17811. 4.8
  17812.  
  17813. 4.8
  17814.  h = h;
  17815. 4.8
  17816.  while (txt_queue(t) > 0)
  17817. 4.8
  17818.  {number of lines visible in window */
  17819. 4.8
  17820.   lines = txt_visiblelinecount(t);
  17821. 4.8
  17822.  
  17823. 4.8
  17824.   /* process the next user event code */
  17825. 4.8
  17826.   switch (txt_get(t))
  17827. 4.8
  17828.   {+ akbd_Fn+127:
  17829. 4.8
  17830.     /* close window icon */
  17831. 4.8
  17832.     txt_hide(t);
  17833. 4.8
  17834.     break;
  17835. 4.8
  17836.   
  17837. 4.8
  17838.    case akbd_UpK:
  17839. 4.8
  17840.    case txt_EXTRACODE + akbd_UpK:
  17841. 4.8
  17842.    case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_UpK:
  17843. 4.8
  17844.     /* scroll up one line */
  17845. 4.8
  17846.     txt_movevertical(t, –1, TRUE);
  17847. 4.8
  17848.     break;
  17849. 4.8
  17850.   
  17851. 4.8
  17852.    case akbd_DownK:
  17853. 4.8
  17854.    case txt_EXTRACODE + akbd_DownK:
  17855. 4.8
  17856.    case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_DownK:
  17857. 4.8
  17858.     /* scroll down one line */
  17859. 4.8
  17860.     txt_movevertical(t, 1, TRUE);
  17861. 4.8
  17862.     break;
  17863. 4.8
  17864.   
  17865. 4.8
  17866.    case akbd_Sh + akbd_UpK:
  17867. 4.8
  17868.    case txt_EXTRACODE + akbd_Sh + akbd_UpK:
  17869. 4.8
  17870.     /* scroll up one page */
  17871. 4.8
  17872.     txt_movevertical(t, -lines, FALSE);
  17873. 4.8
  17874.     break;
  17875. 4.8
  17876.    case akbd_Sh + akbd_DownK:
  17877. 4.8
  17878.    case txt_EXTRACODE + akbd_Sh + akbd_DownK:
  17879. 4.8
  17880.     /* scroll down one page */
  17881. 4.8
  17882.     txt_movevertical(t, lines, FALSE);
  17883. 4.8
  17884.     break;
  17885. 4.8
  17886.   
  17887. 4.8
  17888.    case akbd_Ctl + akbd_UpK:
  17889. 4.8
  17890.    case HOME:
  17891. 4.8
  17892.     /* move to start of text */
  17893. 4.8
  17894.     txt_setdot(t, 0);
  17895. 4.8
  17896.     break;
  17897. 4.8
  17898.   
  17899. 4.8
  17900.    case akbd_Ctl + akbd_DownK:
  17901. 4.8
  17902.    case akbd_Sh + akbd_CopyK:
  17903. 4.8
  17904.     /* move to end of text */
  17905. 4.8
  17906.     txt_setdot(t, txt_size(t));
  17907. 4.8
  17908.     break;
  17909. 4.8
  17910.   
  17911. 4.8
  17912.    default:
  17913. 4.8
  17914.     break;
  17915. 4.8
  17916.   }
  17917. 4.8
  17918.  }
  17919. 4.8
  17920.  return;
  17921. 4.8
  17922. }
  17923. 4.8
  17924. David Scott, Stockport
  17925. 4.8
  17926. •   Connection problems − If you are having connection problems with RS423
  17927. connectors, or video or printer − or a dongle, it may be because the
  17928. plugs are not ‘going home’ properly into the sockets on the back of the
  17929. computer. I have noticed this particularly on A540’s, but it could also
  17930. occur on other Archimedes computers. This may be because the fixing
  17931. pillars either side of the socket are too high. The solution it to take
  17932. a pair of pliers (or a box spanner if you have a suitable sized one) and
  17933. remove each of the pillars in turn, take off the washer and screw the
  17934. pillar back in. That extra millimetre can make all the difference.
  17935. 4.8
  17936. •   CPC monitor − When my multisync died on me suddenly and I was forced
  17937. to make do with what I had − a well worn Amstrad CPC green screen
  17938. monitor. In practice it was fairly easy to connect the six-pin CPC
  17939. connector to the nine-pin connector on the A3000:
  17940. 4.8
  17941.    Archimedes      CPC
  17942. 4.8
  17943.    1, 2 & 3   −   6
  17944. 4.8
  17945.    6, 7, 8 & 9   −   5
  17946. 4.8
  17947.    5   −   4
  17948. 4.8
  17949. Naturally, it is impossible to use the multisync modes but it certainly
  17950. is almost as sharp a picture on the tube as on my multisync and much
  17951. cheaper. If your main interest is games I wouldn’t recommend it but for
  17952. most business uses it is perfectly all right. I guess you could get a
  17953. second hand green CPC monitor for next to nothing in the UK as many
  17954. owners have exchanged them for the new CPC monitors. Ask your local
  17955. dealer! A spare monitor could come in handy any day! Tord Eriksson,
  17956. Sweden.
  17957. 4.8
  17958. •   !Edit − For what seems like an eternity I have been wrestling with the
  17959. problem of importing text from a wordprocessor (in my case View). What I
  17960. wanted to do was free the text from newline characters in order that, on
  17961. loading it into Ovation, it could be formatted to new column width, in
  17962. whatever point size, without the newline control code producing extra
  17963. linefeeds. At the same time, it should retain the carriage returns
  17964. marking the paragraphs and multi-line spacing. This way I did not lose
  17965. all the style. What follows is how I do it . It might seem obvious but
  17966. it could help someone who is as thick as me. If I have missed the point
  17967. would some kind person tell me before I go mad.
  17968. 4.8
  17969. After loading your text into !Edit, go through the text ensuring that
  17970. there are double returns at the end of each paragraph and on multiple
  17971. line text like program listings or poetry.
  17972. 4.8
  17973. My technique is firstly to change double returns into something which is
  17974. unlikely to appear elsewhere in the text, thus:
  17975. 4.8
  17976. Press <F4> to select Find
  17977. 4.8
  17978. In the Find dialogue box enter  \n\n <return>
  17979. 4.8
  17980. In the Replace dialogue box enter  ZCZC<return>
  17981. 4.8
  17982. Click on the Magic Character box
  17983. 4.8
  17984. Click on the Go box
  17985. 4.8
  17986. Click on End of File Replace
  17987. 4.8
  17988. Click on Stop
  17989. 4.8
  17990. Press <ctrl-up> to move the cursor to the top
  17991. 4.8
  17992. Now, to replace the single returns:
  17993. 4.8
  17994. Press <F4> to select Find
  17995. 4.8
  17996. In the Find dialogue box enter  \n <return>
  17997. 4.8
  17998. In the Replace dialogue box press <space>
  17999. 4.8
  18000. Click on Go
  18001. 4.8
  18002. Click on End of File Replace
  18003. 4.8
  18004. Click on Stop
  18005. 4.8
  18006. Press <ctrl-up>
  18007. 4.8
  18008. Then, to restore the double returns to single ones:
  18009. 4.8
  18010. Press <F4> to select Find
  18011. 4.8
  18012. In the Find dialogue box enter  ZCZC<return>
  18013. 4.8
  18014. In the Replace dialogue box enter \n <return>
  18015. 4.8
  18016. Click on Go
  18017. 4.8
  18018. Click on End of File replace
  18019. 4.8
  18020. Click on Stop
  18021. 4.8
  18022. You should have your text with the paragraph and multi-line spacing
  18023. intact. (Simplified from a hint sent in by R Follett, Winnersh, Berks.)
  18024. 4.8
  18025. •   Improving sound quality − Further to the comments by Jeremy Mears
  18026. (Archive 4.7 p 21) there is no need, on the A3000, to actually solder to
  18027. the motherboard. You can make contact to the appropriate resistors using
  18028. micro test clips (Tandy − £1.50 for four). This would, I suppose, still
  18029. invalidate the warranty but is less obvious than blobs of solder on the
  18030. p.c.b.! To get access to the resistors, you have to remove the disc
  18031. drive by unscrewing it from underneath. R86 is under the keyboard side
  18032. of the drive whereas R99 is under the middle of the drive. Pin 1 of the
  18033. expansion port is the furthest right (looking from the keyboard side of
  18034. the computer). Gerald Williams, Aldershot.
  18035. 4.8
  18036. •   Multiple height and width text printing − I know that the emphasis
  18037. these days is on programs which multi-task and use mode 12 on the
  18038. desktop but not every program is suitable for this and some of these
  18039. programs require larger than usual height characters.
  18040. 4.8
  18041. I am (slowly) developing a word game for the Archimedes, from one I
  18042. wrote last year on my Model B. The “B” version uses mode 2, with double
  18043. height routines written in machine code for speed. The original version
  18044. of this code was quite “illegal” and would not work on a Master but it
  18045. was fast! With it, I could also have text printed 3 or even 4 times
  18046. normal height just as quickly. However, I am new to the Archimedes and
  18047. ARM code is currently beyond me, so after trying various routines in
  18048. BASIC I came across VDU23,17,7. This gives characters at any height and
  18049. any width and is very fast! I can even get half width which gives the
  18050. impression of mode 1 characters in mode 2. Also, it works in most Screen
  18051. modes (except 3, 6 & 7).
  18052. 4.8
  18053. I’ve put together a short routine which demonstrates how easy and fast
  18054. this routine is. To use it, all you have to do is append the PROCedure
  18055. to your program and call it with the colour you wish it to appear in,
  18056. the X & Y positions, the height and width of the characters and the
  18057. Text$ − the routine will do the rest! One point to bear in mind,
  18058. however, is that text is printed using the graphic cursor, i.e. under
  18059. VDU 5 and MOVE or PLOT, rather than the text cursor and VDU 31, X%,Y%.
  18060. 4.8
  18061. Even though this demonstration program is about 20 lines long, the only
  18062. bits you need are in PROCtext(colour, X_co_ord, Y_co_ord, Height, Width,
  18063. Text$). The function FNvdu simply returns the text width of the screen
  18064. mode window in use and this is used to check if lines are too long in
  18065. the first line of PROCtext. The second line in PROCtext is personal as I
  18066. like being able to centralise text without effort! To do so, just set X%
  18067. to -1. The %110 sets bits 1 and 2 so that both characters and spacing
  18068. are altered at the same time. %100 sets spacing, while %010 will alter
  18069. just character sizes. It is also possible to use 0.5 as Height or Width
  18070. but that works better in “chunky” modes, like 2 rather than 12. When the
  18071. width is set to an odd number, the “auto-centralising” is sometimes a
  18072. little off so you may prefer to set up the X co-ord manually.
  18073. 4.8
  18074. REM >$.Height/Wid.!RunImage
  18075. 4.8
  18076. :
  18077. 4.8
  18078. DIM block% 12, output% 12
  18079. 4.8
  18080. MODE12:COLOUR3
  18081. 4.8
  18082. :
  18083. 4.8
  18084. PROCtext(1,-1,1,2,3,“Multi Height & Width!”)
  18085. 4.8
  18086. PROCtext(2,-1,4,2,1,“Double Height, Normal Width”)
  18087. 4.8
  18088. PROCtext(3,-1,7,1,2,“Normal Height, Double Width”)
  18089. 4.8
  18090. PROCtext(4,-1,10,3,3,“3 * 3 Format”)
  18091. 4.8
  18092. PROCtext(5,-1,15,4,1,“Ridiculous! 4 X 1 !!”)
  18093. 4.8
  18094. PROCtext(6,-1,20,1,1,“You should reset the height & width
  18095. 4.8
  18096.  before finishing”)
  18097. 4.8
  18098. PROCtext(6,-1,21,1,1,“but as it stands the PROCedure will
  18099. 4.8
  18100. do this anyway”)
  18101. 4.8
  18102. END
  18103. 4.8
  18104. :
  18105. 4.8
  18106. DEFPROCtext(C%,X%,Y%,H,W,T$)
  18107. 4.8
  18108. F%=FNvdu
  18109. 4.8
  18110. IF F%-(LENT$*W)<=0 THEN ERROR 300,“Line too long”
  18111. 4.8
  18112. GCOL C%
  18113. 4.8
  18114. Y%=1000-(Y%*32)
  18115. 4.8
  18116. IF X%=-1 THEN X%=(F%-LENT$*2)/(W*2)
  18117. 4.8
  18118. IF W=1 THEN X%=(F%-LENT$)/4
  18119. 4.8
  18120. X%=X%*32
  18121. 4.8
  18122. VDU 23,17,7,%110,W*8;H*8;0;
  18123. 4.8
  18124. VDU 5,25,4,X%;Y%;
  18125. 4.8
  18126. PRINT T$
  18127. 4.8
  18128. VDU 4,23,17,7,%110,8;8;0;
  18129. 4.8
  18130. ENDPROC
  18131. 4.8
  18132. :
  18133. 4.8
  18134. DEF FNvdu
  18135. 4.8
  18136. !block%=256
  18137. 4.8
  18138. block%!4=-1
  18139. 4.8
  18140. SYS“OS_ReadVduVariables”,block%,
  18141. 4.8
  18142. output%
  18143. 4.8
  18144. =!output%
  18145. 4.8
  18146. •   Off screen desktop windows − Normally, the filer and switcher windows
  18147. are forced to stay within the confines of the screen but, by altering
  18148. their template files, it is possible to make them move ‘off screen’ and
  18149. thus help to reduce window ‘clutter’.
  18150. 4.8
  18151. To do this, you have to copy the window templates from the DeskFS to a
  18152. directory called Templates. First, create a directory called Templates
  18153. in the root directory of your harddisc or ‘workdisc’ and then type the
  18154. following:
  18155. 4.8
  18156. *deskfs
  18157. 4.8
  18158. *copy templates.filer  scsifs::scsidisc4.$.templates.filer
  18159. 4.8
  18160. *copy templates.switcher  scsifs::scsidisc4.$.templates.filer
  18161. 4.8
  18162. (You can also copy netfiler, palette and wimp windows across if
  18163. required.)
  18164. 4.8
  18165. Load the window template data into !FormEd (Shareware Disc 20) and set
  18166. the ‘no bounds’ option for each window. Then, edit your disc !boot file
  18167. to include the following line:
  18168. 4.8
  18169. Set Wimp$Path scsifs::scsidisc4.
  18170. 4.8
  18171. (or whatever your system is!) Don’t forget the full stop at the end.
  18172. This points Wimp$Path in the direction of the updated windows.
  18173. 4.8
  18174. Finally re-boot your machine to see the result!  M Roscoe, Ealing
  18175. 4.8
  18176. •   PrinterDM with the Star LC24−10 − I was interested to see the note on
  18177. !PrinterDM and the LC24-10 in March’s edition of Archive. May I draw
  18178. your attention to the “Hint and Tip” which I had published in the March
  18179. edition of Risc User on the same subject but concerning a different
  18180. problem. I was initially disappointed in the results I obtained with
  18181. Impression Junior (and from the Ovation test disc and, to a lesser
  18182. extent, !Draw printouts). This was due to some lines of text having a
  18183. marked “slewed” effect. After speaking to Star, and much sleuthing, I
  18184. tracked down the problem to the very same line in the PrData file of
  18185. !PrinterDM (version 1.12). There is apparently some incompatibility
  18186. between the Star and the Epson LQ800. The former does not like the “zero
  18187. absolute tab” command used to obtain the CR without LF. The solution was
  18188. to substitute the commands used in the FX80 module, although modified to
  18189. use the correct line feed command for 24 pin printers. With my version
  18190. of !PrinterDM I have not experienced any squashed text with the 24/180
  18191. inch feed (could the writer have been in IBM mode where the command
  18192. gives n/216 inches rather than n/180 inches?) but the bigger feed
  18193. suggested in March’s tip could equally well be used. The modified line
  18194. is as follows:
  18195. 4.8
  18196. line_epilogue “<27>A<0><13><27>2<27>J<24>”
  18197. 4.8
  18198. I’m surprised that this matter has not previously been commented on,
  18199. especially as I think it also applies to the XB24-10.  A.F. Taylor,
  18200. Poole
  18201. 4.8
  18202. •   Quattro to Schema transfer − To move data files from Quattro, first
  18203. save the file with a WKI extension. Then you can use Schema’s !sch123 to
  18204. translate the file into Schema format. This method leaves all sorts of
  18205. spurious bits and pieces which have to be edited out by hand but it does
  18206. work.  M Green, Devon
  18207. 4.8
  18208. •   Quitting First Word Plus − If you quit First Word Plus (release 2)
  18209. from the task manager while a text file is loaded, you will be thrown
  18210. out of the desktop. If other applications are running that may object
  18211. e.g. Draw, Paint, etc, they will announce what is about to happen and
  18212. give you a chance to prevent it. Otherwise you will lose any files that
  18213. you may have been working on in First Word Plus.     R Bunnett,
  18214. Swanley
  18215. 4.8
  18216. •   Reading disc names − For those software writers who need to check that
  18217. the user has inserted an appropriate disc in the disc drive the
  18218. following function returns the name if the disc currently inserted:
  18219. 4.8
  18220. DIM block% 5
  18221. 4.8
  18222. :
  18223. 4.8
  18224. DEF FNdiscname
  18225. 4.8
  18226. SYS “OS_GBPB”,5,,block%
  18227. 4.8
  18228. ?(block%+?block% +1)=13
  18229. 4.8
  18230. =$(block%+1)
  18231. 4.8
  18232. M Sawle, Hampshire
  18233. 4.8
  18234. •   !Schema VAT rate − New spreadsheets are created with various user
  18235. names available, one of which is “Vat”. To change this from 0.15 to
  18236. 0.175, look in the !Schema directory and then in the Menu directory and
  18237. you should find a file called StartUp. This has a write-lock on it so
  18238. you will have to use ‘Access’ off the filer menu to enable it to be
  18239. changed. At the end of this file are a number of lines that start with
  18240. ‘putusn’, the first of which is the Vat rate which simply needs to be
  18241. changed before the file is again saved and the write-lock access
  18242. restored. Ian Hamilton, Harrow.
  18243. 4.8
  18244. •   Spaced filenames − If you want a <space> in a disc or file name, use a
  18245. hard space. This is available by pressing either <alt><1><6><0> or
  18246. <alt><space>. You should note that if you do use it then you can’t use
  18247. the copy key on a catalogue because the Archimedes thinks that the
  18248. character is a normal space (which is illegal in a filename). E Hughes,
  18249. Derbyshire
  18250. 4.8
  18251. •   Twin World cheats − The file SavedGame can be edited using !Edit to
  18252. cheat. Byte values of interest include:
  18253. 4.8
  18254. Byte 1 = Level (Maximum = 22 = &16)
  18255. 4.8
  18256. Byte 4 = Red Spells (Maximum 99 = &63)
  18257. 4.8
  18258. Byte 5 = Blue Spells (Maximum 99 = &63)
  18259. 4.8
  18260. Byte 6 = Green Spells (Maximum 99 = &63)
  18261. 4.8
  18262. Bytes 8-11 = Score, low byte first. (Maximum = 999999 = &F423F )
  18263. 4.8
  18264. Byte 12 = Lives (Maximum = 9 or 10 = &9 or &0A)
  18265. 4.8
  18266. Remember all value are in hex, so use the magic character option in
  18267. !Edit’s Find.  Stuart Turgis
  18268. 4.8
  18269. •   TwinWorld hints
  18270. 4.8
  18271. − Owls in the forest can be killed by jumping up and firing.
  18272. 4.8
  18273. − Similarly, on some occasions you will have to jump, but fire on the
  18274. way down to hit denizens close to you.
  18275. 4.8
  18276. − Jump between worlds whenever possible − if you loose a life, you’re
  18277. taken back to the last time you changed worlds.
  18278. 4.8
  18279. − Stamping your feet can reveal objects − either treasure or keys.
  18280. 4.8
  18281. − Beware of calling the genie when you are already carrying two other
  18282. sorts of objects (remember the horn is one), because you won’t be able
  18283. to buy an object which you don’t already hold.
  18284. 4.8
  18285. − Beware when shooting the three-headed dragon. If you don’t shoot the
  18286. head furthest away from you, it flies away from you and fires an almost
  18287. continuous salvo.
  18288. 4.8
  18289. − Watch out for extended jump − you can sometimes use it when you don’t
  18290. realise − on some screens it’s essential and you may only have a limited
  18291. amount.
  18292. 4.8
  18293. − Watch out for the parachute − in the last few levels I found I
  18294. couldn’t get rid of it and it limited my objects to just two types.
  18295. 4.8
  18296. − When firing at the bird − if you duck, it flies lower to avoid your
  18297. fire. Stand until the bird is fairly close, then crouch and fire.
  18298. 4.8
  18299. − When the giant clam fires at you, or the Big eye, if you run so the
  18300. ‘bullet’ is off the screen it will disappear.
  18301. 4.8
  18302. Impression
  18303. 4.8
  18304. Hints & Tips
  18305. 4.8
  18306. Bruce Goatly (BG), who is busy writing a book about using Impression,
  18307. very kindly sent us some hints & tips (in return for permission to use
  18308. our H&T in his book!). Most of the rest of the H&T are from the editor’s
  18309. experiences with the unreleased version 2.09. (Version 2.10 is not ready
  18310. for release so 2.05 is still the latest officially available version.)
  18311. 4.8
  18312. •   Abbreviation expansion − Use it to correct common spelling errors or
  18313. to enforce house style (I often type ‘ans’ for ‘and’ and ‘thw’ for
  18314. ‘the’, and the house style for my book is ‘disk’ whereas I almost always
  18315. spell it ‘disc’). BG.
  18316. 4.8
  18317. •   Date and time format − As I continually forget what day it is, I use
  18318. the Insert date option quite a lot. If you want to change the format of
  18319. the date (the default is in the form 6th April 1991), load the !Run file
  18320. into Edit and alter the definition of the variable Impression$DateFormat
  18321. (see pp. 337-339 of the User Guide, on using system variables).
  18322. Similarly, you can alter the time format by editing
  18323. Impression$TimeFormat. BG.
  18324. 4.8
  18325. •   Dongle connection problems − If you are having problems with a dongle
  18326. that keeps saying it is not present and you find that you need to wiggle
  18327. it (just a little bit!) to recognise its presence, go back and read the
  18328. hint above about ‘Connection problems’. Alternatively, CC themselves
  18329. offer a hint about it. They say that it is important to quit properly
  18330. from Impression and not just do a <ctrl-break>, otherwise the dongle
  18331. might need to be left for a couple of hours for a capacitor to discharge
  18332. before Impression can be loaded again.
  18333. 4.8
  18334. •   Line spacing and font changes − If a line in the middle of a paragraph
  18335. starts with a different font from the lines around it, the line spacing
  18336. may be upset for that one line because of the way Impression does its
  18337. calculations. The way round it is to put the cursor at the start of the
  18338. offending line, cancel the font change at that point and insert a ‘null’
  18339. character (such as Alt-131). This will be invisible but will correct the
  18340. line spacing. BG.
  18341. 4.8
  18342. •   Loading text files − If you want to load a text file into Impression,
  18343. there is no need to create a new document first − just drag the Edit
  18344. file onto the Impression icon and it will set up an untitled document
  18345. and load the text into a null frame.
  18346. 4.8
  18347. •   Marking a single character − If you are doing DTP in a lower resolu
  18348. tion screen mode, you may be finding it difficult to use the mouse to
  18349. drag-mark a single character e.g. the ‘l’ in ‘will’. One way of doing it
  18350. is to move the cursor between two of the characters, click <select> but
  18351. firmly hold the mouse in place. Then you use the cursor left or right,
  18352. as appropriate, to move the cursor to the other side of the character to
  18353. be marked and finally press <adjust>. George Foot, Oxted.
  18354. 4.8
  18355. My method of doing any of this kind of detailed work is to have two
  18356. windows open on the same document − which is extremely easy to do
  18357. (another advantage over PageMaker!) − one shows the full page and one
  18358. just an enlarged section of the text. Then you can flick backwards and
  18359. forwards between the two views enlarging and contracting the windows or
  18360. simply pushing them to the back when they are not wanted.
  18361. 4.8
  18362. (However, have you noticed that Impression sometimes insists on going
  18363. back to the beginning of the document when you expand and contract the
  18364. window using the size switch icon in the top right hand corner of the
  18365. window? Has anyone worked out why it happens and, more importantly, how
  18366. to stop it?)
  18367. 4.8
  18368. •   Special characters − The list in Appendix 5 of the Impression II
  18369. manual gives a printout of all the characters. This is useful, but there
  18370. is some variation from one typeface to another, so it would be useful to
  18371. have an Impression file of it so that you could print it out in your
  18372. particular typeface. I’ll put a file of it on the monthly program disc,
  18373. but if you want to do it yourself, you can run the following program and
  18374. put the text into a multi-column Impression document.
  18375. 4.8
  18376. 10 REM > CHARLISTER
  18377. 4.8
  18378. 20 *SPOOL CHARS
  18379. 4.8
  18380. 30 @%=2
  18381. 4.8
  18382. 40 FOR N% = 32 TO 255
  18383. 4.8
  18384. 50 PRINT N%;CHR$(9);
  18385. 4.8
  18386. “{”“heading”“on }{” ;CHR$(N%); “}”
  18387. 4.8
  18388. 60 NEXT
  18389. 4.8
  18390. 70 *SPOOL
  18391. 4.8
  18392. •   Spell-checking − Not really a hint, but I was using the spelling
  18393. checker and it offered me the word “faltness” and told me that
  18394. “flatness” was wrongly spelled. Also, while spell-checking, someone had
  18395. written “Beebugs’ policy”. The spelling checker knows Beebug but can you
  18396. guess what it offered me as an alternative for the accidental plural?
  18397. Yes, that’s right, “Bedbugs”! On the same theme, I spell-checked my
  18398. Factfile and came up with Motley Electronics, Mike Leecher of EMU Ltd,
  18399. ARM3’s from Aloof One and IDLE drives from Ian Copycats. Then I tried
  18400. some of our contributors and found Brain Cowman, Dim Parkland and last,
  18401. but not least, Pall Beggarly.
  18402. 4.8
  18403. •   Tickets please! − (The following saga gives, firstly, an unnecessarily
  18404. long method of doing a job but one which illustrates techniques which
  18405. might prove useful in other circumstances. It is followed by the easier,
  18406. smarter method!) I wanted to make some numbered tickets at A6 size so I
  18407. made up an A4 page with four copies of the ticket. I used a two column
  18408. master page so that I could just take a copy of the text on the page and
  18409. paste it 14 times to make my 60 tickets. Near the bottom of each ticket,
  18410. it said, “Ticket number: ” with an appropriate blank space. Then I
  18411. created four guide frames on the master page at about the right place to
  18412. put in the ticket numbers and inserted four new frames on each page. I
  18413. then went through linking all the frames together. To create the text
  18414. for the numbers, I used PipeDream using the “row” command and copying it
  18415. down 60 rows. I then “saved” this in tab format straight into the first
  18416. ticket number frame and, instantly, all the tickets were numbered.
  18417. Brilliant! The only real hassle was lining up the ticket number boxes
  18418. with the words on the ticket. The problem is that although you can have
  18419. both the text and the master page on screen at the same time and at the
  18420. same magnification (which helps), the main page is not updated until the
  18421. master page is closed so I changed the “preferences” to make the master
  18422. page come up at the right magnification.
  18423. 4.8
  18424. (A similar technique of linked frames is used for the running heads on
  18425. the magazine − i.e. the articles’ names at top outside corners of the
  18426. pages. The dummy Archive, before articles are inserted, has a whole
  18427. string of 60 “X”s, one on each page, alternately left and right aligned.
  18428. Then, when an article has been inserted, the running heads are altered
  18429. using selective search and replace to change, for example, “X” into
  18430. “Hints & Tips”. This is easier than using copy and paste because it
  18431. preserves the left and right alignment. But I digress... let me get back
  18432. to the tickets...)
  18433. 4.8
  18434. Then I suddenly realised the easy way of doing it.... Create the ticket
  18435. at full A4 size on the master page using “Ticket number: ” and then
  18436. inserting the page number. (Use <menu> − Misc − Insert − Current page
  18437. number − Numeric.) Then, all you do is to add 59 pages (click on “Insert
  18438. new page” with <adjust>, not <select> so that the menu option stays on
  18439. the screen) and use “Fit lots” on the “Print” dialogue box reducing the
  18440. scale to 50%. If you find that it still says, “Fit lots (1)” at 50% and
  18441. you have to go down to about 48% before it goes to (4), click on
  18442. “Setup...” and select the option to “Ignore page boundary”. If you don’t
  18443. do this but print out at 48%, you will find that the margins are
  18444. unequal. This is a much quicker way of doing it than the previous method
  18445. and also gives the possibility of deciding that you want the tickets
  18446. smaller after all so you just reduce the scale and, perhaps, change to
  18447. sideways printing.
  18448. 4.8
  18449. •   Widows & orphans − This is the technical term for where you get a
  18450. paragraph split so that a single line is on one page (or column) and the
  18451. rest is on the previous or next. If the first line is split off from the
  18452. rest, the solution is fairly obvious − use <ctrl-G> at the beginning of
  18453. the paragraph to push the line onto the next column. The odd line at the
  18454. end of a paragraph is less easy. If the text is left justified, you can
  18455. again use <ctrl-G> to push one more line to the next column to join the
  18456. lonely orphan. However, if you subsequently edit the paragraph so that
  18457. the layout of the lines changes, you have to edit out the <ctrl-G>.
  18458. Also, this doesn’t work at all if you are using full justification
  18459. because the <ctrl-G> causes the justification on the last line of the
  18460. column to be lost and it looks like the end of a paragraph without a
  18461. full stop. The only solution I can find is to create a new frame with
  18462. <ctrl-I> and lay it over the last line of the column. This forces that
  18463. line over to the next column without losing the justification.
  18464. 4.8
  18465. SCSI Hints & Tips
  18466. 4.8
  18467. •   Removable drive problems − We are beginning to understand more about
  18468. the problems with removable drives. Let me explain... SCSI drives are
  18469. intelligent and they keep their own record of any duff sectors. However,
  18470. this record is not available to the user. If you tell the computer to
  18471. “format” the disc, it deliberately ignores any sectors it already knows
  18472. are duff. If you get a “soft error” i.e. where the data gets corrupted
  18473. so that the CRC check shows up an error, reformatting will clear the
  18474. problem. However, if the disc surface is actually damaged, it may be
  18475. that reformatting clears the problem temporarily but, with time, the
  18476. problem may reappear and you will get the dreaded “Disc error 10 at... ”
  18477. or whatever. The solution to this is to use the *DEFECT command provided
  18478. by RISC-OS. If you get an error, *VERIFY the disc, note the addresses
  18479. which are thrown up as either suspect or actually having a disc error,
  18480. say, 7CEC00, 7CEE00 and 7CF000 and then type in
  18481. 4.8
  18482. *DEFECT SCSI::5 7CEC00
  18483. 4.8
  18484. *DEFECT SCSI::5 7CEE00
  18485. 4.8
  18486. *DEFECT SCSI::5 7CF000
  18487. 4.8
  18488. where SCSI::5 is the drive definition. It is worth recording these
  18489. addresses in case you need to format the disc again in the future. You
  18490. then need to enter the *DEFECT commands again. If *DEFECT finds that you
  18491. are trying to map out a sector that is allocated to a file or directory,
  18492. it will tell you so, in which case, you will have to copy the file or
  18493. directory and delete the one which it says is in the way.
  18494. 4.8
  18495. Obviously, it is better if you can avoid getting hard errors in the
  18496. first place so, just as a reminder, (1) always dismount the drive
  18497. properly before switching off the power and (2) keep your drive cool by
  18498. not packing other hardware around it.
  18499. 4.8
  18500. •   Removable drive problems (Part 2) − Surely there can’t be any MORE
  18501. problems with the removable drives − they really won’t be worth selling.
  18502. Yes, there are more problems but, yes, I still think they are worth
  18503. selling. If you try to use the MR45’s or the Atomwide equivalent on an
  18504. Acorn SCSI podule or on a TechnoSCSI (I have not tried any others), you
  18505. will find that occasionally they just hang up − usually when copying a
  18506. sequence of files. It is a timing problem which Acorn say they will look
  18507. into but they are not too optimistic. They say that Syquest, who make
  18508. the drive mechanisms, have interpreted the SCSI standards in a different
  18509. way from other drive manufacturers. The Acorn engineers have tried to
  18510. modify their software to accommodate Syquest’s idiosyncrasies but
  18511. although they have managed to make a version of their software that will
  18512. work when copying lots of files, they find that it does not format the
  18513. cartridges properly! It is not beyond the bounds of possibility to get
  18514. SCSI software to work on the Syquest drives − both Oak and Lingenuity
  18515. have done it successfully but, as yet, there is no satisfactory way of
  18516. running them on Acorn or TechnoSCSI cards.
  18517. 4.8
  18518. I should say to A540 owners, that, although I am using a Syquest
  18519. removable drive on my A540, I am doing so on an Oak podule. I made the
  18520. change (before I realised there was any problem) purely on the basis
  18521. that (1) the Oak software is the easiest to use on the MR45’s because of
  18522. the ease of dismounting and re-mounting discs and (2) it is the fastest
  18523. that I have tried. (I have not yet tried the offerings from HCCS or The
  18524. Serial Port but unless they have specifically tailored their software
  18525. for the Syquest mechanisms, I doubt that they will work.)
  18526. 4.8
  18527. •   SCSI land speed record − Oak are claiming an Archimedes drive speed
  18528. record. Their 300M HS drive, on an A440 with a 20MHz ARM3, runs at 1939
  18529. / 1761 / 1043  Kbytes/sec in modes 0, 15 and 21 respectively. Can anyone
  18530. beat that?  A
  18531. 4.8
  18532.  
  18533. Hints and Tips
  18534. 4.9
  18535. •   Beware spaces − There is a problem with spaces at the end of OS
  18536. variables:
  18537. 4.9
  18538. If you include in a !Run file code such as the following:
  18539. 4.9
  18540. Set ThisApp$Dir <Obey$Dir>
  18541. 4.9
  18542. Run <ThisApp$Dir>.!RunImage
  18543. 4.9
  18544. then beware that you don’t include a space at the end of the first line!
  18545. If you do, the space will be included in the definition of ThisApp$Dir
  18546. and the second line will cause a “Bad File Name” error. Hugh Eagle.
  18547. 4.9
  18548. •   PC emulator with an ARM3 − The default boot-up process for the ARM3
  18549. performs an RMClear command, killing all RAM resident modules including,
  18550. in particular, the module that drives the ARM3. So, in order, to get the
  18551. PC emulator to take advantage of the ARM3‘s extra speed you need to
  18552. alter the line in !PC.Genboot.!Config immediately after the one that
  18553. reads “Perform RMClear?” from “Y” to “N”! (Thanks to Martin Coulson of
  18554. Atomwide for this advice.) Hugh Eagle
  18555. 4.9
  18556. •   Printer tips − You can alter the halftone density by editing the
  18557. PrData file within your printer driver (see Archive 4.6 for an example
  18558. of how to find this). For instance, PrinterLJ has lines such as:
  18559. 4.9
  18560. pxres_halftone:300/8
  18561. 4.9
  18562. pyres_halftone:300/8
  18563. 4.9
  18564. so each halftone dot is actually formed of a matrix of 8x8 dots, giving
  18565. a halftone density of 300/8=37.5 dpi. This gives a very coarse effect
  18566. but can produce 65 different grey levels. Altering the lines to:
  18567. 4.9
  18568. pxres_halftone:300/6
  18569. 4.9
  18570. pyres_halftone:300/6
  18571. 4.9
  18572. gives “only” 37 grey levels and a dot pitch of 50 dpi. Experiment to see
  18573. what suits your printer best.
  18574. 4.9
  18575. A word of caution. I used !Draw to produce some PCB artwork, printed it
  18576. out using !PrinterLJ on a DeskJet Plus and sent it off... Disaster! The
  18577. size was OK across the width but was 1.5% too small along the length of
  18578. the paper, as was discovered when the finished circuit boards came back.
  18579. I’d previously had no trouble using an Epson-compatible printer, so it
  18580. may be something to do with the friction feed on the HP slipping, or
  18581. perhaps a slightly thicker paper would have helped. Anyway, if your hard
  18582. copy must be accurate, then check it! Jonathan Oakley, Cambridge.
  18583. 4.9
  18584. •   Printing * command output − Ever since I got my LaserDirect I have
  18585. been laboriously printing the results of *Status, *Dump, etc. by
  18586. directing the output to a file and then printing the file (while
  18587. bemoaning the loss of the <Ctrl-B>, etc. facility à la BBC). However, I
  18588. have just realised that it is easier (and much more in keeping with
  18589. Acorn’s RISC-OS standards, I am sure) to open a Task Window in !Edit,
  18590. enter the * command (which puts its output in the window) and then print
  18591. the contents of the window by “saving” to the printer driver icon. In
  18592. other words, click <menu> on the !Edit icon on the icon bar and use
  18593. Create − New Task window. This presents you with a new window with a *
  18594. ready for a command. Type in the command whose output you want listing,
  18595. say, *STATUS. When the listing has finished, click on the window with
  18596. <menu> and go Edit − Save and drop the text file produced onto your
  18597. printer icon. Easy! (Then close the window, answering ‘Yes’ to ‘Kill and
  18598. close’.) Hugh Eagle
  18599. 4.9
  18600. •   Printing via a RISC-OS printer driver from a BASIC program − Have you
  18601. ever wondered why your computer has a button called “Print” that doesn’t
  18602. seem to do anything of the sort?
  18603. 4.9
  18604. At last, applications seem to be appearing that recognise that pressing
  18605. the <Print> key is rather an intuitive way of printing (Impression and
  18606. Poster are two examples). Also, I have discovered that RISC-OS printer
  18607. drivers are not nearly as fearsome as the PRM makes them seem and it is
  18608. actually quite easy to incorporate into your own program’s printing
  18609. routines which are activated by ... wait for it ... the <Print> key.
  18610. Amazing!
  18611. 4.9
  18612. Take the Painting application from the original Arthurian Welcome disc,
  18613. for instance. We still use this in my family because it is so simple,
  18614. but it has always (incredibly) lacked a printing facility. To rectify
  18615. this, proceed as follows:
  18616. 4.9
  18617. Put this line near the beginning of the program (e.g. immediately after
  18618. PROCdesktop (at about line 200):
  18619. 4.9
  18620.  PROCPrintSetup(110000)
  18621. 4.9
  18622. Note: 110,000 bytes is big enough to allow the program to run in mode
  18623. 20. 55,000 would be enough for mode 12.
  18624. 4.9
  18625. Put this line in the WimpPoll loop (e.g. immediately after the ENDCASE
  18626. statement at around line 400):
  18627. 4.9
  18628. IF INKEY-33 THEN PROCPrint(162,232,1274,972)
  18629. 4.9
  18630. Note: INKEY-33 is the crucial function that recognises whether the
  18631. <Print> key is being pressed.
  18632. 4.9
  18633. Finally, put these procedures at the end of the program:
  18634. 4.9
  18635. DEF PROCPrintSetup(SpriteAreaSize%)
  18636. 4.9
  18637. DIM SpriteArea% SpriteAreaSize%
  18638. 4.9
  18639. !SpriteArea%=SpriteAreaSize%
  18640. 4.9
  18641. SpriteArea%!8=16
  18642. 4.9
  18643. SYS “OS_SpriteOp”,9+256,SpriteArea%
  18644. 4.9
  18645. ENDPROC
  18646. 4.9
  18647.  
  18648. 4.9
  18649. DEF PROCPrint(X1%,Y1%,X2%,Y2%)
  18650. 4.9
  18651. SYS “Hourglass_On”
  18652. 4.9
  18653. PrintHandle%=OPENOUT(“printer:”)
  18654. 4.9
  18655. SYS “PDriver_SelectJob”,PrintHandle% ,0 TO Old%
  18656. 4.9
  18657. ON ERROR LOCAL PROCPrintError
  18658. 4.9
  18659.  
  18660. 4.9
  18661. MOVE X1%,Y1%:MOVE X2%,Y2%
  18662. 4.9
  18663. SYS “OS_SpriteOp”,14+256, SpriteArea%,“TempSprite”,1 : REM Get sprite
  18664. 4.9
  18665.  
  18666. 4.9
  18667. DIM RectBlock% 15,Transform% 15,PrintPosition% 7
  18668. 4.9
  18669. RectID%=1
  18670. 4.9
  18671. BackCol%=&FFFFFF00:REM set background colour to white
  18672. 4.9
  18673.  
  18674. 4.9
  18675. REM X1%, Y1%, etc. are the screen coordinates of the area
  18676. 4.9
  18677. to be printed
  18678. 4.9
  18679. !RectBlock%=X1%:RectBlock%!4=Y1%
  18680. 4.9
  18681. RectBlock%!8=X2%:RectBlock%!12=Y2%
  18682. 4.9
  18683.  
  18684. 4.9
  18685. REM No scaling or rotation required
  18686. 4.9
  18687. !Transform%=&10000:Transform%!4=0
  18688. 4.9
  18689. Transform%!8=0:Transform%!12=&10000
  18690. 4.9
  18691.  
  18692. 4.9
  18693. REM Put the bottom LH corner 1.5“ REM from the left AND 5” from the
  18694. 4.9
  18695. REM bottom of the page
  18696. 4.9
  18697. !PrintPosition%=1.5*72000
  18698. 4.9
  18699. PrintPosition%!4=5*72000
  18700. 4.9
  18701.  
  18702. 4.9
  18703. SYS “PDriver_GiveRectangle”,RectID%, RectBlock%,Transform%,
  18704. PrintPosition%,BackCol%
  18705. 4.9
  18706. SYS “PDriver_DrawPage”,1,RectBlock%, 0,0 TO More%,,RectID%
  18707. 4.9
  18708. WHILE More%
  18709. 4.9
  18710.   SYS “OS_SpriteOp”,34+256
  18711. 4.9
  18712. ,SpriteArea%,“TempSprite”
  18713. 4.9
  18714. ,X1%,Y1%,0
  18715. 4.9
  18716.   SYS “PDriver_GetRectangle”,, RectBlock% TO More%,,RectID%
  18717. 4.9
  18718. ENDWHILE
  18719. 4.9
  18720. SYS “PDriver_EndJob”,PrintHandle%
  18721. 4.9
  18722. SYS “Hourglass_Smash”
  18723. 4.9
  18724. CLOSE#(PrintHandle%)
  18725. 4.9
  18726. ENDPROC
  18727. 4.9
  18728.  
  18729. 4.9
  18730. DEF PROCPrintError
  18731. 4.9
  18732. SYS “PDriver_Abort”,PrintHandle%
  18733. 4.9
  18734. SYS “Hourglass_Smash”
  18735. 4.9
  18736. CLOSE#(PrintHandle%)
  18737. 4.9
  18738. ENDPROC
  18739. 4.9
  18740. Hugh Eagle
  18741. 4.9
  18742. •   Running one application from inside another If you’ve ever been
  18743. puzzled by odd behaviour when you try to run one application from inside
  18744. another, the following advice from Mark Neves of Computer Concepts’
  18745. Technical Support Department may help.
  18746. 4.9
  18747. My particular problem arose when I tried to make sure that a printer
  18748. driver was loaded by running !PrinterXX from within application A’s !Run
  18749. file. The result was that application A failed to run and when I quit
  18750. !PrinterXX, an error was reported.
  18751. 4.9
  18752. The answer is that when you run a “sibling task” from another appli
  18753. cation’s run file the sibling “takes over the current environment” until
  18754. it terminates and only then does it return control to the parent task
  18755. (in a manner analogous to a subroutine call).
  18756. 4.9
  18757. The solution is to use the command
  18758. 4.9
  18759. * Desktop <sibling task name>
  18760. 4.9
  18761. rather than *Run.  Hugh Eagle
  18762. 4.9
  18763. •   “Saving” data from one application to another − (This is another of
  18764. those “obvious to those who know it” hints.) If you want to transfer
  18765. data (e.g. text or a sprite or a drawn object) from one RISC-OS
  18766. application to another you don’t have to save it on a disc from
  18767. application A and then load it into application B; all you have to do is
  18768. drag the icon from application A’s “Save” box (i.e. the window that
  18769. appears when you choose a Save menu option) into application B’s window.
  18770. 4.9
  18771. This works with all well behaved (“RISC-OS compliant”) applications,
  18772. e.g. !Edit, !Draw, Impression, !Paint, !Poster, etc. and generally works
  18773. for either the whole contents of a window or for selected items. Hugh
  18774. Eagle
  18775. 4.9
  18776. •   Sprite plotting and colour translation − The ColourTrans section of
  18777. the PRM (pages 1399 to 1424) includes references to a number of SWI’s
  18778. (including, in particular, ColourTrans_SelectTable) which have to be
  18779. called with R1 pointing to the “source palette”. Since, according to PRM
  18780. pages 390−391, a sprite’s palette data starts 44 bytes after the
  18781. beginning of the sprite, it seems clear that, in order to translate a
  18782. sprite’s palette you simply call the ColourTrans SWI with
  18783. SpritePointer%+44 in R1, doesn’t it? Wrong!!!
  18784. 4.9
  18785. In fact, the palette data in a sprite appears to include 8 bytes for
  18786. each colour with the second 4 bytes duplicating the first 4 (does anyone
  18787. know why this is?) whereas ColourTrans expects only 4 bytes per colour.
  18788. 4.9
  18789. So, before you can translate a sprite’s colours, you need to include
  18790. some code on the following lines:−
  18791. 4.9
  18792. PaletteLength%=SpritePointer%!32−44
  18793. 4.9
  18794. IF PaletteLength%=0 THEN
  18795. 4.9
  18796.  PalettePointer%=0
  18797. 4.9
  18798. ELSE
  18799. 4.9
  18800.  FOR I%=0 TO PaletteLength%-8 STEP 8
  18801. 4.9
  18802.   Palette%!(I%/2) = SpritePointer%!(I%+44)
  18803. 4.9
  18804.  NEXT
  18805. 4.9
  18806.  PalettePointer%=Palette%
  18807. 4.9
  18808. ENDIF
  18809. 4.9
  18810. Note: The palette data, if any, starts 44 bytes after the beginning of
  18811. the sprite. SpritePointer%!32 contains the number of bytes from the
  18812. beginning of the sprite to the start of the actual sprite pixel data. If
  18813. this equals 44, there is no palette.
  18814. 4.9
  18815. The point of setting PalettePointer% to 0 if there is no palette data,
  18816. is that if the sprite has no palette then, in many cases, (especially if
  18817. the sprite is defined in a 256 colour mode) it makes sense to call
  18818. ColourTrans with R1 set to 0 since ColourTrans will then translate the
  18819. default palette for the sprite’s mode. However ...
  18820. 4.9
  18821. •   Strange sprite colours − Ever since RISC-OS arrived, I’ve been puzzled
  18822. by the odd colours which have appeared when some sprites have been
  18823. plotted by various applications (including Impression, no less). I think
  18824. that, at last, I’m beginning to understand why. Consider the following
  18825. curious state of affairs:
  18826. 4.9
  18827. Palette details are an optional part of the sprite data format. A lot of
  18828. sprites are created by !Paint. !Paint, by default, creates sprites
  18829. without a palette (presumably on the assumption that, having been
  18830. designed in the Desktop colour scheme, they will be used on the
  18831. Desktop.)
  18832. 4.9
  18833. The PRM (page 1278) recommends that you should use the ColourTrans
  18834. module for best results when plotting or printing a sprite. However,
  18835. although ColourTrans knows how to translate from any given palette and
  18836. from the default palette for any mode, it doesn’t seem to be equipped
  18837. with any means of translating the standard desktop palette of a mode
  18838. other than the current one.
  18839. 4.9
  18840. Therefore, the best that applications can do when faced with a palette-
  18841. less sprite is to tell ColourTrans to assume that the sprite was defined
  18842. in the default palette for its mode. The trouble with this is that it is
  18843. about the worst possible thing that can be done with a sprite defined to
  18844. be used on the Desktop since, for instance, colour 0 which is intended
  18845. to be white, will be translated by ColourTrans, working from the default
  18846. palette, into black! For example, even Impression reverses the colours
  18847. of its standard document icon.
  18848. 4.9
  18849. So, what’s to be done? As far as I can tell:
  18850. 4.9
  18851. The best advice is to make sure that every sprite has a palette. If this
  18852. isn’t possible then, for plotting sprites on the Desktop, use
  18853. Wimp_ReadPixTrans if a sprite doesn’t have a palette (this is the
  18854. routine that the Wimp manager uses for plotting sprites as icons and
  18855. seems to produce quite acceptable results on the whole) and save
  18856. ColourTrans calls for sprites that do have palettes. For example, follow
  18857. the above palette conversion routine with code something like this:
  18858. 4.9
  18859. SYS “ColourTrans_SelectTable”,Mode%, PalettePointer%,-1,-1,ColTable%
  18860. 4.9
  18861. IF PaletteLength%<>0 THEN
  18862. 4.9
  18863.   SYS “OS_SpriteOp”,52+512,Sprites% ,SpritePointer%,200,200,
  18864. Mask%*8,Scale%,ColTable%
  18865. 4.9
  18866. ELSE
  18867. 4.9
  18868.   IF NumberOfColoursInSprite%<63 THEN SYS “Wimp_ReadPixTrans”, 512,
  18869. Sprites%,SpritePointer% ,,,,,ColTable%
  18870. 4.9
  18871.   SYS “OS_SpriteOp”,52+512,Sprites%, SpritePointer%,200,200,
  18872. 4.9
  18873. Mask%*8,Scale%,ColTable%
  18874. 4.9
  18875. ENDIF
  18876. 4.9
  18877. If you’re plotting to a printer, “Wimp_ReadPixTrans” doesn’t help and I
  18878. don’t think there is any straightforward, foolproof method. (It would be
  18879. possible, I think, to create a block of palette data with the RGB values
  18880. for the colours of the Desktop palette in the relevant mode and then
  18881. feed this into ColourTrans, but this would be a rather tedious process.)
  18882. Hugh Eagle
  18883. 4.9
  18884. Impression Hints and Tips
  18885. 4.9
  18886. •   Adding fonts by using search & replace − As a mathematics and physics
  18887. teacher, I use a lot of Greek letters and it is rather bothersome to
  18888. have to work through all those menus to reach the effect “Greek” every
  18889. time. Therefore, I use search & replace in a way which (at least in the
  18890. Impression Junior handbook) is not documented:
  18891. 4.9
  18892. I type the text, using the Latin equivalents of the Greek letters (“g-
  18893. Quant” instead of “g-Quant”) then, when I have finished the text, I use
  18894. the following:
  18895. 4.9
  18896.    Find: g-Quant
  18897. 4.9
  18898.    Replace: g-Quant
  18899. 4.9
  18900. Impression does the rest. (Many thanks to Computer Concepts for the
  18901. information!)
  18902. 4.9
  18903. By the way, if you wish to find out how all the other effects are saved
  18904. in an Impression document, there is an easy way to find out: Just take a
  18905. document with lots of effects and save only the text story (“with
  18906. effects”). If you then drag the icon of the saved text story onto the
  18907. !Edit icon, the text will appear with all the effects in plain language. 
  18908.  Jochen Konietzko, Koeln, Germany
  18909. 4.9
  18910. (Wouldn’t it be easier to use <ctrl-F6> and edit the “Greek” style, go
  18911. down to the bottom where it says “Key short-cut”, click in the box and
  18912. press, say, <ctrl-shift-F9>, then OK it? Then when you want, say, “g-
  18913. Quant”, you type “<ctrl-shift-F9>g<ctrl-shift-F9>-Quant”.... Oh, I see,
  18914. Impression Junior doesn’t have styles. Oh well, nice try!)
  18915. 4.9
  18916. •   Cutting invisible text − If you have more text in a frame than will
  18917. fit, you get the little red arrow which indicates that some of the text
  18918. is invisible. You could obviously create a new frame, click on the over-
  18919. full frame and then click <adjust> on the new frame but there may still
  18920. be too much for that frame. So, is there any way of marking the
  18921. invisible text so that you can cut it or copy it? The answer is that you
  18922. simply use <ctrl-down> to move the cursor to the (invisible) bottom of
  18923. the text the click <adjust> to indicate the upper limit of the area to
  18924. be marked. Ed.
  18925. 4.9
  18926. •   Handy hint − If you use the ‘hand’ to move up or down through a long
  18927. document, you are not limited in your movements to the visible page. In
  18928. other words, if you keep moving the mouse up and up (by repeatedly
  18929. lifting the mouse off the table) or down and down, you just keep moving
  18930. through the document in the desired direction. (This is particularly
  18931. useful if you are a trackerball user!) Ed.
  18932. 4.9
  18933. •   Importing text files into Impression − In the new version of Impres
  18934. sion which CC have just sent me (version 2.11), I have discovered an
  18935. exciting new concept in the Archimedes world − “the Return Stripper”!!
  18936. 4.9
  18937. In the Extensions directory is a new loader module called “LoadReturn”
  18938. which at last seems to deal satisfactorily with the importing of text
  18939. files. Using this, I no longer have to load the file into !Edit then
  18940. change linefeeds into carriage returns before importing. Nor do I have
  18941. to suffer fixed line lengths in the imported text.
  18942. 4.9
  18943. However, I do have two quibbles (some people are never satisfied!):
  18944. 4.9
  18945. Double carriage returns are reduced to single returns, so spaces between
  18946. paragraphs are eliminated (unless you change the style so that it leaves
  18947. such a space − which I think is good practice. Ed). I feel it would be
  18948. helpful to be able to set a “preference” to decide whether or not double
  18949. returns are preserved.
  18950. 4.9
  18951. Importing a text file now involves a somewhat tiresome sequence of
  18952. message windows whereby I am asked to accept or reject each of the
  18953. available loader modules in turn. I feel it would be helpful to be able
  18954. to use the “preference” facility either to define which loader is used
  18955. for which filetype or, at the very least, to determine the order in
  18956. which the various loader options are offered to me. Hugh Eagle.
  18957. 4.9
  18958. (All I did was to put the LoadReturn extension into the Auto directory
  18959. in the Impression directory and now when I want files stripping, I use
  18960. !Settype (Shareware 19 or 23) to change them to Acorn data file type
  18961. (&FFD) and they are stripped automatically. Ed.)
  18962. 4.9
  18963. •   Labels & Tickets − Another way of doing tickets and labels is to
  18964. define a new master page which is the right size for what you want to
  18965. create (pretty radical, eh?). “Fit lots” still works, giving you
  18966. multiple tickets per sheet, but you’re not restricted to 1% size
  18967. increments which can cause you to miss the boundaries on sticky labels,
  18968. especially where there are three or four across the page width.
  18969. (Brilliant! Why didn’t I think of that? Ed. − see below.)
  18970. 4.9
  18971. A similar technique works for cassette inlays. One way is to define a
  18972. single master page 101mm deep and 288mm wide, divided into columns of
  18973. 16, 12, 65, 65, 65 and 65mm; this format will fit two inlays to an A4
  18974. page (assuming zero border width, which will vary between printers), but
  18975. you need to fiddle around with !FontDraw and !Draw (Or use Draw1½ − see
  18976. below. Ed) to get text on the spine of the cassette. Starting with a
  18977. page 288mm deep and 101mm wide gives you the spine text a sensible way
  18978. round, but the four “body” pages are then landscape, which you may not
  18979. want.
  18980. 4.9
  18981. Another way is to split the inlay into two chapters; the spine has a
  18982. 101mm wide, 28mm high master page, and the body pages are 65mm by 101mm,
  18983. or vice versa if you want landscape. Then you need to do a bit of
  18984. cutting and pasting by hand, as Impression won’t print individual pages
  18985. sideways. This is the technique I ended up by using, printing at 141%
  18986. then reducing the pasted-up result from two up on A3 back down by 70% to
  18987. A4, thus enhancing the graphics halftones from 37.5 dpi to 53.6 dpi.
  18988. I’ve included an example ... (Which we have put on the Monthly Program
  18989. Disc. Ed) Jonathan Oakley, Cambridge.
  18990. 4.9
  18991. •   Labels & tickets − Ed’s version − I have played a bit with Jonathan’s
  18992. ideas and developed them a little. I tried to create some labels (like
  18993. the ones on our Shareware Discs etc which come as 24 to an A4 page) and
  18994. found that his method worked very well. I created a master page that was
  18995. 70mm x 37.125mm (which is 210mm divided by 3 horizontally and 297mm
  18996. divided by 8 vertically). I set a border 3mm wide on all four sides
  18997. because the Laser Direct HiRes can print up to about 2.5mm of the edge
  18998. of the page and I wanted to have a simple line border around my labels.
  18999. I put all my text on the master page including a page number so that I
  19000. could have a serial number on the labels. I then closed the master page
  19001. and created another 23 pages for my document by using <menu> Edit −
  19002. Insert new page. I clicked 22 times with <adjust> so that the menu
  19003. stayed on screen and once with <select>. I then pressed <print> and
  19004. clicked on “Fit lots” and then “Setup...” and then “Ignore page border”.
  19005. The printout which appeared was almost right but was 1mm too far to the
  19006. right, 1mm too low at the top and the last label was even lower. (Thinks
  19007. hard.... tries various things and then....) The printout was slightly
  19008. too long so I created a slightly shorter master page − 70mm x 37.11mm. I
  19009. tried to see if there was any adjustment on the laser printer but
  19010. couldn’t find any so I went to the (new, shorter) master page, clicked
  19011. on the frame and pressed <ctrl-F10> to alter the frame. In the position
  19012. section, I simply increased X from 5 to 6 and reduced Y from 5 to 4 in
  19013. order to move the text on the page 1 mm right and 1 mm up. Bingo! Every
  19014. border on every label was almost exactly 5mm.
  19015. 4.9
  19016. I also had a quick try with Jonathan’s cassette inlay printing and it is
  19017. really very easy with his first method − I cheated though by using
  19018. Draw1½ (Shareware 34). For the spine, all you do is create a new Draw1½
  19019. document, type in the text you want, change it to whatever font you are
  19020. using, press <menu> − Special − Text to path and then <menu> − Save −
  19021. Selection and drop the Draw file produced into the relevant graphics
  19022. frame in your Impression document. Then use <adjust> to drag the picture
  19023. round until it is near enough at right angles to the rest of the text
  19024. (having decided which way you want it to face) and finally press <ctrl-
  19025. F11> (Alter graphic) and set the Angle to exactly 90° or 270°. (If you
  19026. can remember which way round 90° or 270° puts it, then there’s no need
  19027. to swing it round with <adjust>.) Here is a bit of text that I have just
  19028. inserted. It must have taken me all of 45 seconds to create the frame,
  19029. type in the text, convert it and add it in! (Software to enable me to do
  19030. that on the Mac cost me hundreds of pounds a couple of years ago!)
  19031. 4.9
  19032. •   “Running” an Impression document − In Alan Highet’s review of !Menon
  19033. on Shareware 38 (Archive 4.8 page 48) he mentions that it did not work
  19034. well with Impression documents since an attempt to “run” one of these
  19035. caused a second copy of Impression to appear on the icon bar.
  19036. 4.9
  19037. I have observed a similar phenomenon in trying to create a front-end for
  19038. Impression which, amongst other things, opens a template document chosen
  19039. by the user. Simply *Running the document results in the loading of a
  19040. new copy of Impression regardless of whether one is already running.
  19041. 4.9
  19042. So, why is it that double-clicking on an Impression document in a Filer
  19043. window will load it into an existing copy of Impression whereas
  19044. “running” it doesn’t?
  19045. 4.9
  19046. Mark Neves of Computer Concepts’ Technical Support Department has kindly
  19047. explained why this happens and has pointed to a solution.
  19048. 4.9
  19049. The reason is that what happens when you double click on an icon in a
  19050. Filer window is not simply that the document is “run”. First, the Filer
  19051. broadcasts a Message_DataOpen message inviting other applications to
  19052. open the document, and only if this message is returned unacknowledged
  19053. does it instigate a *Run.
  19054. 4.9
  19055. The solution is a fairly simple program on the following lines:
  19056. 4.9
  19057. REM >!RunImage
  19058. 4.9
  19059. TaskName$=“RunImpDoc”
  19060. 4.9
  19061. :
  19062. 4.9
  19063. PROCSetUpWimp
  19064. 4.9
  19065. DocToOpen$=FNReadOSVarVal
  19066. 4.9
  19067. (“Doc$ToOpen”)
  19068. 4.9
  19069. PROCPollLoop
  19070. 4.9
  19071. SYS “Wimp_CloseDown”,Taskid% ,&4B534154
  19072. 4.9
  19073. IF NotAcknowledged% THEN OSCLI(“Run ”+DocToOpen$)
  19074. 4.9
  19075. END
  19076. 4.9
  19077. :
  19078. 4.9
  19079. DEF PROCPollLoop
  19080. 4.9
  19081. LOCAL mask%,quit%
  19082. 4.9
  19083. NotAcknowledged%=FALSE
  19084. 4.9
  19085. PROCSendDataOpenMessage
  19086. 4.9
  19087. mask%=0
  19088. 4.9
  19089. quit%=FALSE
  19090. 4.9
  19091. REPEAT
  19092. 4.9
  19093. SYS “Wimp_Poll”,mask%,block% TO reason%
  19094. 4.9
  19095. CASE reason% OF
  19096. 4.9
  19097. WHEN 17,18 : IF block%!16=4 THEN quit%=TRUE
  19098. 4.9
  19099.  REM Another task (presumably
  19100. 4.9
  19101.  REM Impression) has acknowledged
  19102. 4.9
  19103.  REM our request to load a file.
  19104. 4.9
  19105. WHEN 19  : NotAcknowledged%=TRUE:quit%=TRUE
  19106. 4.9
  19107.  REM Our request has not been acknowledged.
  19108. 4.9
  19109. ENDCASE
  19110. 4.9
  19111. UNTIL quit%
  19112. 4.9
  19113. ENDPROC
  19114. 4.9
  19115. :
  19116. 4.9
  19117. DEF PROCSendDataOpenMessage
  19118. 4.9
  19119. !block%=256
  19120. 4.9
  19121. block%!12=0:block%!16=5:block%!20=0
  19122. 4.9
  19123. block%!28=0:block%!32=0:block%!36=0
  19124. 4.9
  19125. block%!40=&2000
  19126. 4.9
  19127. $(block%+44)=DocToOpen$
  19128. 4.9
  19129. ?(block%+44+LEN(DocToOpen$))=0
  19130. 4.9
  19131. SYS “Wimp_SendMessage”,18,block%,0
  19132. 4.9
  19133. ENDPROC
  19134. 4.9
  19135. :
  19136. 4.9
  19137. DEF PROCSetUpWimp
  19138. 4.9
  19139. DIM block% &1000,errblk% 256
  19140. 4.9
  19141. REM Taskid%=FNWimpInit(200,TaskName$)
  19142. 4.9
  19143. SYS “Wimp_Initialise”,200, &4B534154,TaskName$ TO Version%,Taskid%
  19144. 4.9
  19145. ON ERROR PROCError(TaskName$)
  19146. 4.9
  19147. ENDPROC
  19148. 4.9
  19149. :
  19150. 4.9
  19151. DEF FNReadOSVarVal(varname$)
  19152. 4.9
  19153. LOCAL temp1%,temp2%,length%
  19154. 4.9
  19155. DIM temp1% 100,temp2% 100
  19156. 4.9
  19157. $temp2%=varname$
  19158. 4.9
  19159. SYS “OS_ReadVarVal”,temp2%,temp1%, 100,0,3 TO ,,length%
  19160. 4.9
  19161. temp1%?length%=13
  19162. 4.9
  19163. var$=$temp1%
  19164. 4.9
  19165. =var$
  19166. 4.9
  19167. :
  19168. 4.9
  19169. DEF PROCError(TaskName$)
  19170. 4.9
  19171. !errblk%=ERR
  19172. 4.9
  19173. $(errblk%+4)=REPORT$+“ at line ”+ STR$ERL
  19174. 4.9
  19175. errblk%?(4+LEN$(errblk%+4))=0
  19176. 4.9
  19177. SYS “Wimp_ReportError”,errblk%,1, TaskName$
  19178. 4.9
  19179. SYS “Wimp_CloseDown”,Taskid%, &4B534154:END
  19180. 4.9
  19181. ENDPROC
  19182. 4.9
  19183. To use this program, simply set up the OS variable Doc$ToOpen with the
  19184. full pathname of the document and run the program. Hugh Eagle
  19185. 4.9
  19186. •   Setting a style in an Impression frame − Question: how do I set up a
  19187. blank frame containing a predetermined style (for instance, to hold the
  19188. address of the person I am writing to, where I would like to use a
  19189. different font from the one in the body of the letter)? If I put the
  19190. cursor in the frame, then apply the style, then move the cursor
  19191. elsewhere (or save and reload the document) before bringing it back to
  19192. the address frame, and then start typing, the text comes up in the
  19193. Basestyle.
  19194. 4.9
  19195. Answer: If after applying the style, I type anything (for instance a
  19196. couple of carriage returns) in the address frame then the applied style
  19197. seems to be remembered and the address frame works as intended.
  19198. 4.9
  19199. Caution: if I delete the entire contents of the frame the applied style
  19200. is deleted too. So, if I want to blank the frame for reuse I have to
  19201. remember to leave a carriage return or two to preserve the style. Hugh
  19202. Eagle.
  19203. 4.9
  19204. •   Typesetting − We said we would try to find companies willing to do
  19205. typesetting from Impression output. Here are two that we have found. If
  19206. you discover others, ask them to send us details of their services and
  19207. we will publish them. We are particularly interested in those that will
  19208. take Impression files as such rather than PostScript files on MS-DOS
  19209. discs.
  19210. 4.9
  19211. The Type Station in Cardiff offers a full bureau service for bromide or
  19212. film. You create PostScript files and either send them by post on an MS-
  19213. DOS disc or send them c/o BT using a modem. For details, contact Elgan
  19214. Davis on 0222−229977.
  19215. 4.9
  19216. Focus Print in Aberdeen can do bromides (PMT’s) from your Impression
  19217. files. Phone Alexander Bisset on 0224−592571 ext 211 (or 0224−593956
  19218. evenings).  A
  19219. 4.9
  19220.  
  19221. Hints and Tips
  19222. 4.10
  19223. •   *Count command − In Archive 4.6 p8 the hint about *Count, is only
  19224. partly right. The *Count command only counts data. This means that
  19225. directories indeed don’t contribute, but also that only the amount of
  19226. data in a file is counted. However, all files must be an integer
  19227. multiple of the block-size (1k for D and E format), and for short files
  19228. this makes a huge difference. My 46Mb hard disc has about 8Mb difference
  19229. between space used from *Free and from *Count for these reasons!
  19230. 4.10
  19231. One implication of this is that when you archive a large number of small
  19232. files with !Spark you can save much more disc space than you might
  19233. expect. One thing I would suggest for hard disc users is to copy the
  19234. directory tree using *Copy :4.$ :0 T R, and then archive it, which will
  19235. compress it down to almost nothing. Think of all the time you spend
  19236. setting up the directory structure; this may be more important than
  19237. losing files, most of which you will (should?), after all, have on
  19238. floppies. As an added bonus this also gives you the location of all
  19239. applications, as these are just directories. If (perish the thought) you
  19240. have a disc crash, you can just drag the tree out of the archive and
  19241. onto a new hard disc.  Stephen Burke, Liverpool.
  19242. 4.10
  19243. •   DataLoad problems? − The PRM says that if a DataLoad message isn’t
  19244. acknowledged, the sending task should delete <Wimp$Scrap> and give an
  19245. error. However, I think this is wrong. You aren’t guaranteed that the
  19246. scrap file used is, in fact, <Wimp$Scrap>. One case where this must
  19247. happen is with an application which can both load and save files of the
  19248. same type at the same time; it must not use <Wimp$Scrap> for both, or it
  19249. might get very confused! However, there might be other reasons. I
  19250. therefore think you should remember the name of the file you saved, and
  19251. delete that − you get told that it wasn’t a secure file, so this should
  19252. be safe.  Stephen Burke, Liverpool.
  19253. 4.10
  19254. •   Hard Drive problems − BEWARE!!! If you have a fairly old computer − a
  19255. 310 or a 440 or even a vintage 410/1 or if you are working in a dusty
  19256. environment and you are putting in a new hard drive, check/replace the
  19257. fan filter. Why? Well, drive suppliers tell us that on more than one
  19258. occasion they have had a computer where the fan filter was blocked up
  19259. with dust, the customer has installed a new drive and not changed the
  19260. filter and, as a result of the lack of airflow, the drive has suffered a
  19261. fatal head crash. So, you have been warned. (Fan filters should be
  19262. available “from your local Acorn dealer” or they can be bought from
  19263. N.C.S. as part of an “Annual Service Kit” − including a new pair of
  19264. batteries − priced £3.)
  19265. 4.10
  19266. •   How long is a line? − While editing an old program which I was
  19267. converting from the BBC Master to run on the Archimedes, I came across
  19268. some features of Basic line lengths which may be of interest. The
  19269. program was originally written for the BBC-B with the longest possible
  19270. lines to save space.
  19271. 4.10
  19272. On Page 16 of the ‘Basic User Guide’ issue 1 dated 1988, it says ‘A line
  19273. of Basic can contain up to 238 characters...’ but on page 386 it says
  19274. that ‘As in a Basic program, the length of a line is limited (by the
  19275. Basic Editor) to 251 characters..’. This implies that the system has two
  19276. different ideas of what the maximum line length should be, instead of
  19277. one. Unfortunately, the one it uses seems to depend on what you are
  19278. doing.
  19279. 4.10
  19280. My module ARMBasicEdit (version 1 21 August 87) allows the insertion of
  19281. many more than 238 characters in a line. I can get up to 369 before
  19282. there is a warning bell, but then neither <Escape> nor <Return> nor SAVE
  19283. work until there are only the 251 characters left. Programs containing
  19284. lines of length between 239 and 251 apparently run without problems.
  19285. However, if you try editing the lines with Basic loaded, just using the
  19286. Copy key, you find that there is a warning bell after 239 characters,
  19287. (excluding the line number), not after 251.
  19288. 4.10
  19289. Programs with lines longer than 239 characters can be converted to ASCII
  19290. using *SPOOL. However, when you attempt to read them back into a Basic
  19291. program using *EXEC, the lines are truncated to 239, so that the program
  19292. no longer runs. There is a warning bell but the *EXEC process does not
  19293. stop, so not allowing me to find which lines are at fault. I find this
  19294. very frustrating. The file Btest, on the monthly disc, is an example of
  19295. such a program. The file ‘CHECK240’ is a small program which reads a
  19296. file made using *SPOOL which cannot be successfully read back using
  19297. *EXEC. It lists the line numbers which are too long, allowing me to edit
  19298. them with the Basic Editor.
  19299. 4.10
  19300. CHAIN“Btest” to see that it runs. Then try
  19301. 4.10
  19302. *SPOOL TEMP
  19303. 4.10
  19304. LIST
  19305. 4.10
  19306. *SPOOL
  19307. 4.10
  19308. *EXEC TEMP
  19309. 4.10
  19310. CHAIN “CHECK240”
  19311. 4.10
  19312. and reply “TEMP” at the prompt. Kate Crennell, Didcot.
  19313. 4.10
  19314. •   Printer drivers − Further to recent tips about altering the PrData
  19315. file within the printer driver, you can also alter the title of your
  19316. preferred driver and make it the default driver on loading. For example,
  19317. the amendments to !PrinterDM in Archive 4.8 could be made to read “Star
  19318. LC24-10” by altering the line before the line “printer number:2”. The
  19319. default loading is achieved by amending the line “printer:01” to
  19320. “printer:02”. This line is found towards the end of the data file
  19321. immediately before the line “location:1”. Note that the printer number
  19322. must be padded out with a zero (0). Pressing <select> after loading the
  19323. driver will confirm if your amendments have been correctly made.  Ted
  19324. Lacey, Southampton.
  19325. 4.10
  19326. •   Printing A5 on an A4 printer − If you ask the manufacturers, they say
  19327. it is not possible to put A5 paper through either the Qume (300 d.p.i.)
  19328. or the Canon (600 d.p.i.) Laser Directs − or the LBP4’s for that matter
  19329. − but it is possible. All you need is a pile of A5 sheets of scrap paper
  19330. sellotaped up into a solid block about ½“ thick (or ¾” thick for the
  19331. Canons). You put them at the back of the A4 paper tray and put the A5
  19332. paper, sideways, of course, at the front. The paper usually goes through
  19333. OK but does occasionally stick. All you have to be careful of, presum
  19334. ably, is that you don’t print on the lower half of the (A4) paper that
  19335. is not actually there. Having said that, I have been using A5 paper on
  19336. Qume’s, Canons and Mac Laserwriters for years and have occasionally left
  19337. the “A5” tray in when printing A4 without any obvious damage to the
  19338. printers.
  19339. 4.10
  19340. We can now get hold of spare paper trays for Qume (£66) and Canon LBP4
  19341. (£57) and Canon LBP8 (£54)
  19342. 4.10
  19343. (A possible alternative to the paper is a block of wood the same size
  19344. and thickness but I haven’t actually tried it.)
  19345. 4.10
  19346. •   Psychedelic sound-to-light − Whilst playing a Tracker module, it is
  19347. possible to obtain some interesting effects on your monitor by typing
  19348. the following Basic command:
  19349. 4.10
  19350. SYS “OS_UpdateMEMC”,768,1792
  19351. 4.10
  19352. The screen can be returned to normal with either a MODE command or with:
  19353. 4.10
  19354. SYS “OS_UpdateMEMC”,1536,1792
  19355. 4.10
  19356. Rob Swain, Kent
  19357. 4.10
  19358. •   Render Bender on SCSI hard disc drives revisited − In Archive 3.11 p6,
  19359. Neil Berry explains how to use Render Bender on SCSI hard disc drives
  19360. but leaves us with the problem of how to use *KILLADFS. This can be
  19361. achieved by changing all references made to SWI ADFS_Drives (&40242) to
  19362. SWI SCSI_Drives (&403C6). i.e.
  19363. 4.10
  19364. In the ‘Render’ Basic listing: change the SWI &40242 to &403C6 in line
  19365. 15810
  19366. 4.10
  19367. In ‘Aniroute’ Basic listing: change the SWI &40242 to &403C6 in line
  19368. 6670
  19369. 4.10
  19370. Atle Mjelde Bårdholt, Norway
  19371. 4.10
  19372. •   Running one application inside another − The comment in Archive 4.9
  19373. page 6 seems to need some amplification. As explained on page 11 of the
  19374. May/June 1991 issue of “The Archimedean” from Computer Concepts, if you
  19375. want to run one application from inside the !Run file of another, you
  19376. should first enter the command
  19377. 4.10
  19378. *Desktop Run <sibling task name>
  19379. 4.10
  19380. and then repeat the *Wimpslot command from earlier in the !Run file to
  19381. ensure that there is enough memory available for the main application
  19382. before you run it.
  19383. 4.10
  19384. Thus, for example, to make Impression automatically load a printer
  19385. driver whenever it is run you should edit the !Impress.!Run file by
  19386. inserting two extra lines immediately before the last so that the last
  19387. three lines read:
  19388. 4.10
  19389. Desktop Run [...path...].!PrinterXX
  19390. 4.10
  19391. Wimpslot −min xxxK −max xxxK
  19392. 4.10
  19393. Run “<Impression$Dir>.!RunImage” %*0
  19394. 4.10
  19395. The xxxK in the Wimpslot command should be exactly the same as used
  19396. earlier in the !Run file − the precise amount of memory needed will vary
  19397. from one version of Impression to another. Hugh Eagle, Horsham.
  19398. 4.10
  19399. •   Sound improvements − A much improved sound, which is also more
  19400. controllable, can be obtained using the standard colour monitor supplied
  19401. with the Archimedes. A 3.5mm jack (Archimedes) to phono (monitor) cable
  19402. is required, and the speaker on the Archimedes should be turned off
  19403. using *SPEAKER OFF.  Sean Kelly, London
  19404. 4.10
  19405. •   Sound voice changes − Among the (many) things that annoy me are those
  19406. professional programmers who alter your Sound Voice for their games
  19407. which otherwise claim to be “RISC-OS Compatible”. They return you to the
  19408. desktop with their Sound Modules set up as ChannelVoice 1. Not everyone
  19409. likes the WaveSynth-Beep as default voice, and as for some of the sound
  19410. modules or digitised Voice Modules which are then sounded when an error
  19411. occurs, YUK!
  19412. 4.10
  19413. It is quite a simple matter to find out what ChannelVoice the user has
  19414. set up and the program could very easily, before exiting to the desktop,
  19415. restore it using the following code which is available for all program
  19416. mers to use, professional or amateur (please!).
  19417. 4.10
  19418. REM Find the User’s ChannelVoice 1
  19419. 4.10
  19420. SYS “Sound_AttachVoice”,1,0 to ,user_voice%
  19421. 4.10
  19422.  
  19423. 4.10
  19424. REM Because ChannelVoice 1 now equal to 0, reset
  19425. 4.10
  19426. SYS “Sound_AttachVoice”,1,user_voice%
  19427. 4.10
  19428. REM Rest of program, Wimp Interface, whatever
  19429. 4.10
  19430. *ChannelVoice 1 Totally Fantastic Voice
  19431. 4.10
  19432.  
  19433. 4.10
  19434. REM Program at end, restore user voice
  19435. 4.10
  19436. SYS“Sound_AttachVoice”,1,user_voice%
  19437. 4.10
  19438. David Shepherdson
  19439. 4.10
  19440. •   Toolkit Plus update − Clares’ Toolkit Plus usually produces a ‘Bad
  19441. disc address’ error when you try to edit E format floppy discs. This can
  19442. be rectified by performing the following:
  19443. 4.10
  19444. 1   RMLoad the Toolkit Plus module.
  19445. 4.10
  19446. 2   Type: *Modules <return> and take note of the ‘position’ address of the
  19447. Toolkit Plus module.
  19448. 4.10
  19449. 3   Use *WFIND &EF060240 <return> and ignore the first occurrence (i.e.
  19450. press <ctrl-tab> to go on to the next occurrence).
  19451. 4.10
  19452. 4   Locate the instruction seventeen lines down which reads BCC xxxxx.
  19453. 4.10
  19454. 5   Select ‘word mode’ and zero this instruction.
  19455. 4.10
  19456. You should now be able to edit E format discs.
  19457. 4.10
  19458. S Edwards, Wordsley
  19459. 4.10
  19460. •   Toolkit Plus with SCSI − Clares’ Toolkit Plus provides a disc sector
  19461. editor, which refused to work on my SCSI hard disc. A modified Toolkit
  19462. Plus may be produced by using !Edit on the Toolkit Plus module to
  19463. replace all occurrences of ‘ADFS’ with ‘SCSI’ before saving the module
  19464. with a new name e.g. SCSITools.
  19465. 4.10
  19466. A drawback is that the modified version will not cope with ADFS
  19467. floppies. Changing the module name (e.g. from ‘Toolkit+’ to ‘SCSITools’)
  19468. using !Edit allows the modified and original modules to be present at
  19469. the same time, and changing the disc edit command names allows both ADFS
  19470. and SCSI discs to be edited − for instance, !Edit could be used to
  19471. replace ‘AEDIT’ in Toolkit+ with ‘WEDIT’ in SCSITools.
  19472. 4.10
  19473. Sean Kelly, London
  19474. 4.10
  19475. Impression Hints and Tips
  19476. 4.10
  19477. •   Abbreviations − I use abbreviations quite a lot such as “imp” for
  19478. Impression and just “r” for Archimedes but I often want to say, for
  19479. example “ ...using DrawPlus (Careware 13)...” and although “ca” and “Ca”
  19480. are both set up to expand to “Careware”, using “(ca” doesn’t work. There
  19481. is no easy way round it as far as I know − you just have to put “(ca”
  19482. into the abbreviations dictionary to expand to “(Careware”.
  19483. 4.10
  19484. •   Bullets − We’ve mentioned that <ctrl-shift-H> produces a bullet but
  19485. since <backspace> (immediately below <F12> and above <\>) produces the
  19486. same ASCII code as <ctrl-H>, you will find that <shift-backspace>
  19487. produces a bullet. Touch typists may well find it somewhat more natural
  19488. than <ctrl-shift-H>.
  19489. 4.10
  19490. •   Creating tables − The release notes issued with Impression II describe
  19491. the new features of version 2.12 but they do less than justice to one of
  19492. those features, namely the capacity to create tables. It is possible to
  19493. vary the width of individual columns and individual rows in a table as
  19494. well as the thickness of the vertical and horizontal lines which form
  19495. the table.
  19496. 4.10
  19497. In addition, the many editing facilities of Impression can be used to
  19498. modify text which has been entered into the table so that the style and
  19499. size of the characters in any “cell” of the table can be varied as
  19500. desired.
  19501. 4.10
  19502. Moreover, in the manner usual with Impression II, another frame can be
  19503. superimposed on any selected part of the table with the effect that
  19504. lines of the table can be covered and will “disappear” permitting text
  19505. of any size and nature to be introduced and adjusted to appear to be a
  19506. part of the structure of the table.
  19507. 4.10
  19508. In addition to text, any of the superimposed frames can be made graphics
  19509. frames permitting illustrations to be introduced. You can use left hand
  19510. tabulation in the some columns, right hand tabulation in others and
  19511. decimal point tabulation in others.
  19512. 4.10
  19513. Practical matters: First construct the empty table. Then determine which
  19514. cells will be visible in the completed table and enter text into those
  19515. cells, Finally, superimpose other frames as required. Proceeding in this
  19516. order prevents interference with tabulation.
  19517. 4.10
  19518. The usual procedure will be to construct a table of this kind within a
  19519. frame of its own so that it can be moved as a whole to any desired
  19520. position within the document of which it will form a part. Therefore, on
  19521. completion of the table, the various frames of which it is composed
  19522. should be Grouped so that the table occupies a single frame. George
  19523. Foot, Oxted.  A
  19524. 4.10
  19525.  
  19526. 4.10
  19527.  
  19528. 4.10
  19529.  
  19530. 4.10
  19531. Oak
  19532. 4.10
  19533. From 4.9 page 12
  19534. 4.10
  19535.  
  19536. 4.10
  19537. Lindis International
  19538. 4.10
  19539. From 4.8 page 16
  19540. 4.10
  19541.  
  19542. 4.10
  19543. Computer Concepts
  19544. 4.10
  19545. New artwork
  19546. 4.10
  19547. Coming direct to you, hopefully!
  19548. 4.10
  19549. If not, use old one.
  19550. 4.10
  19551.  
  19552. 4.10
  19553. Computer Concepts
  19554. 4.10
  19555. New artwork
  19556. 4.10
  19557. Coming direct to you, hopefully!
  19558. 4.10
  19559. If not, use old one.
  19560. 4.10
  19561.  
  19562. 4.10
  19563. Graphics Galore on the Cheap!
  19564. 4.10
  19565. Tord Eriksson
  19566. 4.10
  19567. Reading with amazement about the latest version of Ventura Publisher Mac
  19568. that costs a cool £695 (exclusive VAT!) and so-called ‘budget’ DTP
  19569. programs for IBMs weighing in at £70 to £160, I wonder if we Archimedes
  19570. users really know how fortunate we are when it comes to good, cheap
  19571. software.
  19572. 4.10
  19573. The “budget” DTP programs for IBMs can’t even word-process − you have to
  19574. use a separate editor, just as you have to do if you do some DTP with
  19575. !Draw....
  19576. 4.10
  19577. Of course, the latest version of Ventura Publisher Mac can print fonts
  19578. in 23½ size instead of just 23 or 24 point size − a revolution no doubt
  19579. but one that almost all DTP and word-processors for our Archimedes
  19580. machines manage easily!
  19581. 4.10
  19582. Archimedes − no master of colours!
  19583. 4.10
  19584. There is a difference between modern IBMs and Mac II’s that puts all
  19585. Acorn computers at a disadvantage, even if it was once hailed as an
  19586. advance over said computers: Colours!
  19587. 4.10
  19588. In terms of colour, both Mac II computers and IBMs with VGA are better
  19589. than Archimedes and the sky is the limit as there are hundreds of
  19590. graphics cards that can be bought that improve things further − 24-bit
  19591. colours are available.
  19592. 4.10
  19593. RISC-OS has an upper limit of 8 bits per pixel, 256 colours − 24 bits
  19594. per pixel gives 16,777,216 different colours, quite a lot more!.
  19595. 4.10
  19596. For the Archimedes range, the limitations are built-in, through RISC-OS
  19597. and the fixed hardware. (There are some improvements possible with
  19598. hardware add-ons, but nothing major).
  19599. 4.10
  19600. Serious DTP is black & white!
  19601. 4.10
  19602. Fortunately, colour printers are very rare in everyday printing, mainly
  19603. due to the fact that such printers are very costly and/or requires
  19604. skilled staff to attend to them.
  19605. 4.10
  19606. So, for practical purposes, DTP will continue to be a mainly black &
  19607. white affair, maybe with some colour thrown in for good measure on
  19608. covers etc.
  19609. 4.10
  19610. The woes of illustrating....
  19611. 4.10
  19612. Being a former technical illustrator, I am painfully aware of the amount
  19613. of work needed to set text in a circular fashion as on a coin or an
  19614. official seal or make the logo on a fluttering flag look like the real
  19615. thing. Hours and hours of work, or in the case of the flag, take a photo
  19616. of the real thing and trace that with tracing paper....
  19617. 4.10
  19618. If the logo is new, you can’t print it first on a flag, so you try to
  19619. make do with crinkling a piece of paper upon which you put your text or
  19620. logo and take a photo of that....
  19621. 4.10
  19622. All this is now of the past, as long as your logo or text can be
  19623. transformed into a !Draw file.
  19624. 4.10
  19625. First − !FontFX
  19626. 4.10
  19627. Let us try an example: There used to be an oil company around this part
  19628. of the world called Caltex. Let us say we are going to do a drawing with
  19629. a flag fluttering with that name on it.
  19630. 4.10
  19631. First we have the text, set in Pembroke:
  19632. 4.10
  19633. To make it more interesting let’s add a shadow, with the shadow in the
  19634. north-east, and make the text itself a black outline filled with a light
  19635. grey and behind it, the dark grey shadow:
  19636. 4.10
  19637.  
  19638. 4.10
  19639.  
  19640. 4.10
  19641.  
  19642. 4.10
  19643. Both these operations are very easy to do with !FontFX as you just click
  19644. on the buttons needed, no previous know-how needed!
  19645. 4.10
  19646. To make this flutter we have to use a couple of other utilities:
  19647. !DrawPlus (or !Draw) and DrawBender.
  19648. 4.10
  19649. Warped universe
  19650. 4.10
  19651. A normal picture is plotted in our brain according to the angle we watch
  19652. the picture from: If we fly above a square field the corners are right
  19653. angle corners (a so-called bird’s-eye view) and if we stand just outside
  19654. the field the angles get very odd indeed − their sum is still 360,
  19655. though!
  19656. 4.10
  19657. If a square is wrapped around a cylinder things get much more compli
  19658. cated, especially when seen at an angle − an illustrator’s nightmare!
  19659. Not even all CAD programs seems to be able to solve it correctly....
  19660. 4.10
  19661. Secondly − make a mould!
  19662. 4.10
  19663. DrawBender manipulates !Draw files by plotting them inside each other:
  19664. Any text that is going to be manipulated has to be in !Draw format. The
  19665. coordinate system “inside” a square is still square but inside a circle
  19666. it takes on the characteristics of a text printed on a balloon like
  19667. this:
  19668. 4.10
  19669.  
  19670. 4.10
  19671.  
  19672. 4.10
  19673.  
  19674. 4.10
  19675.  
  19676. 4.10
  19677. The first (the circle) is called the mould and the second (the square
  19678. inside a frame) is called the object.
  19679. 4.10
  19680. Due to the way DrawBender works, a real circle couldn’t be used − it had
  19681. to be substituted it with a 32-sided polygon and it had to be flipped
  19682. over because paths have to be clockwise to work as moulds in DrawBender
  19683. whereas !Draw and !DrawPlus draw counter-clockwise − it’s all very well
  19684. explained in the DrawBender manual!
  19685. 4.10
  19686. Wonderful results!
  19687. 4.10
  19688. Taking the text, we put it on rectangular background, to make the
  19689. outline of the flag as the outline of the mould doesn’t show up on the
  19690. finished result:
  19691. 4.10
  19692. This is now our object! A “flapping flag” is our mould:
  19693. 4.10
  19694. Conclusion
  19695. 4.10
  19696. As the end result shows the effect is quite stunning. This amount of
  19697. manipulation is available to IBM users of course − I could recommend
  19698. Express Publisher (£159.95) as the “low-cost” alternative!
  19699. 4.10
  19700. For Archimedes users the cost is just £21, including two manuals and
  19701. lots of sample files (available from Ian Copestake Software).  A
  19702. 4.10
  19703.  
  19704. Hints and Tips
  19705. 4.11
  19706. •   Running applications − Carrying on from Hugh Eagle’s tip about running
  19707. one application from inside another, on a A310, if you only have
  19708. floppies and have, say, a DTP !Impression disc with !PrinterDM ,
  19709. !FontDraw and !DrawPlus all at the same level, you can tailor the !run
  19710. file of, say, !Impression to load other applications at the same
  19711. directory level, dependant on memory, by using the command
  19712. 4.11
  19713. *desktop <obey$dir>.^.!second_
  19714. 4.11
  19715. application_name
  19716. 4.11
  19717. the <obey$dir> sets the filing system into the first selected appli
  19718. cation (!Impression.) and the .^. takes it back up to the level you were
  19719. at first! The next application then loads on the desktop ready for use.
  19720. Repeat the line with “!third_ application_name” and so on.  Ned Abell
  19721. 4.11
  19722. •   Colour separations − Last month, there was a question from John
  19723. Oversby about a colour separation program for !Draw or sprite files. One
  19724. solution is to use DrawPlus (Careware 13), actually drawing different
  19725. colours on different “layers”. Another possible solution revolves around
  19726. the Impression Business Supplement which provides colour separation for
  19727. PostScript files. However, the ideal solution is a simple “filter”
  19728. program which takes in a !Draw file and selects all objects of a
  19729. particular colour and puts them into a new !Draw file. Does anyone know
  19730. of such a program? I would be interested in using this for producing
  19731. double-sided printed circuit boards using !Draw. It is easy to write a
  19732. Basic program to do this starting from the !Draw format as specified in
  19733. the PRM − I could even do this myself − but making it RISC-OS-ified is
  19734. another matter. Brian Cowan
  19735. 4.11
  19736. Impression H & T
  19737. 4.11
  19738. •   Business Supplement − Like many of you I was excited about the release
  19739. of more software for serious users of Impression II. The addition of the
  19740. mail-merge facility is particularly useful. However, I have noticed that
  19741. it suffers from a problem that early versions of Impression had. Namely,
  19742. using the * print facility causes the print to crash after the first
  19743. document with “Invalid number of output bits” in multiscan mode. The
  19744. problem is resolved by switching to mode 15. Also, beware of forgetting
  19745. to load your RISC-OS printer driver before requesting a print from
  19746. !Importer. This is because it won’t warn you that you will receive a
  19747. draft copy − and worse, you have to close everything down and start
  19748. again.
  19749. 4.11
  19750. Another word of warning to those of you planning to buy the supplement
  19751. thinking that the WordStar loader will solve all your translation
  19752. problems − it doesn’t (not on my version, anyway)! If I had thought
  19753. about it, the result one gets is obvious. All the ASCII spaces that mess
  19754. up justification are stripped − but this is at the cost of losing a
  19755. space at the end of a line. Consequently, numerous words are joined
  19756. together. If you are prepared to use the spellchecker to separate the
  19757. words again the utility is fine and it does stop those messy spaces
  19758. appearing whenever you make an alteration to the text. However, it’s
  19759. still hard work!  John Brocks
  19760. 4.11
  19761. •   Font usage − Is there a product or would someone like to write an
  19762. application which takes an Impression document and tells you what
  19763. fonts are required? The reason for this is that some PD software
  19764. includes documentation prepared in Impression format. This is a great
  19765. idea but sometimes strange fonts are used. If you are using Adrian
  19766. Look’s !FontDir (Shareware 36) then you need to know which fonts are
  19767. needed before Impression is booted up. Brian Cowan
  19768. 4.11
  19769. That should be easy enough. If you want to do it manually, you can save
  19770. the text of an Impression document with styles and look at it in Edit.
  19771. You can search for “font  ” and look through all the references to
  19772. particular fonts as they occur in the style definitions and as effects
  19773. within the text. Mind you, that will give you the fonts that appear
  19774. within the style definitions regardless of whether those styles have
  19775. actually been used in the document. Anyone want to have a go at writing
  19776. such an application?
  19777. 4.11
  19778. Is anyone interested in / able to convert between the Impression
  19779. Document Description File format and TeX? I think it should be possible
  19780. since both contain the same sort of information. This would be useful
  19781. for scientific applications where many journals accept material on disc
  19782. or by wire in TeX format. Brian Cowan
  19783. 4.11
  19784. •   Labels and tickets − When I was printing video cassette labels onto a
  19785. roll of adhesive labels they were printing too far to the right. I
  19786. failed to understand that !Impression is smart and says, “right, you are
  19787. printing a document 165mm wide. I will print it 82.5mm to the right and
  19788. left of the centre line of the printer”. I have a mark on the case of my
  19789. Citizen 120D printer to align the left hand side of A4 paper, when
  19790. putting in individual sheets but I can’t centre different rolls of
  19791. labels accurately without putting several marks on the case which would
  19792. be confusing so I got round the problem by designing new master pages
  19793. that are always A4 width (210 mm) and creating a frame on that page that
  19794. is the right width for the labels and off centred to the left. I
  19795. continue to put the label roll edge to the mark.
  19796. 4.11
  19797. I then had to change the !Printer DM page size to one 102mm by 210mm
  19798. wide which gives me the the right “greying” on the screen as I have
  19799. “Preferences”, “Show page borders”, switched on. This prints two perfect
  19800. sets of labels but I still get unwanted form feeds at the end of the
  19801. page! (Example supplied on monthly program disc.)  Ned Abell
  19802. 4.11
  19803. •   Retaining styles − Hugh Eagles’s question about setting a style in a
  19804. blank Impression frame (Archive 4.9 p11) can be answered in terms of
  19805. ‘Place holding’ in the same way as my hint on re-aligning lines starting
  19806. with a different font (Archive 4.8 page 11). Just set the style and type
  19807. a ‘null’ character in the frame (i.e. one which is not defined in the
  19808. font you are using) by using Alt and the keypad numbers. (EFF fonts are
  19809. rapidly filling up, making null characters harder to find, but try 136
  19810. or 139.) Bruce Goatly
  19811. 4.11
  19812. •   Un-deleting − As you probably know, you can highlight a passage, type
  19813. over it and thereby replace it. Well, if you have second thoughts
  19814. immediately afterwards, you can restore the original by highlighting the
  19815. replacement passage and typing <ctrl-V>. This deletes the replacement
  19816. altogether rather than cutting it to the clipboard; the clipboard still
  19817. contains the original version. Bruce Goatly  A
  19818. 4.11
  19819.  
  19820. 4.11
  19821. Help!!!!
  19822. 4.11
  19823. •   Mac Scanner − Does anybody know of software to use a Mac AppleScanner
  19824. with a SCSI interface on an Archimedes? Brian Cowan
  19825. 4.11
  19826. •   Podule expansion − Does anyone know of an expansion box which allows
  19827. more than 4 podules to be attached to an Archimedes computer at any one
  19828. time? A G Duckett, Telford.  A
  19829. 4.11
  19830.  
  19831. 4.11
  19832.  
  19833.  
  19834.  
  19835. ProTips
  19836. 4.11
  19837. Peter Jennings
  19838. 4.11
  19839. This is a column of hints and tips for users of Protext 5. It is not
  19840. intended as a regular feature to rival PipeLine as there are probably
  19841. not yet enough users of the Archimedes version of Protext to support it.
  19842. Arnor have promised to keep me informed of developments to Protext,
  19843. particularly the eagerly awaited RISC-OS version, and I will pass the
  19844. details on in future issues of Archive, along with any hints or tips
  19845. that pioneering users of this exciting new word processor may care to
  19846. send by way of Paul Beverley.
  19847. 4.11
  19848. In the meantime, here are a few hints of my own plus advice on an
  19849. irritating bug that has emerged from the software since I completed the
  19850. review in last month’s Archive.
  19851. 4.11
  19852. First the bug, which has suddenly appeared after lying dormant during
  19853. three months’ constant use of Protext. It shows itself during attempts
  19854. to save a file, either manually or automatically, with two messages, one
  19855. saying that the file “PROTEXT!X” or “PROTEXT!T” cannot be found and the
  19856. other: “Error creating file”. More alarmingly, the text sometimes
  19857. disappears from the screen. Any further attempt to save brings a “File
  19858. open” message. My description of this as “irritating” may seem rather
  19859. inadequate but, in fact, it is not disastrous and can be dealt with
  19860. quite easily. When the message about PROTEXT!X appears just type “close”
  19861. at the command line, followed by “s” (for save). Your original file name
  19862. will then be offered and pressing <return> will duly save it.
  19863. 4.11
  19864. Arnor have not given me any fix for this fault but have just said,
  19865. rather uncertainly: “We think we may have solved the problem in the next
  19866. version of Protext.” Let us hope they have.
  19867. 4.11
  19868. Omissions
  19869. 4.11
  19870. Two strange omissions from Protext, so far, are a function key strip and
  19871. an icon. If you dislike the boring default applications icon, or the
  19872. blank squares representing files, you can always design your own icons,
  19873. using !Paint. First create a directory for them, called !Sprites, inside
  19874. the main !Protext directory. Then design an application icon named
  19875. !protext and a files icon called file_cdf, with additional small
  19876. versions if wanted. Finally, add an initial line to the !Boot file:
  19877. “IconSprites <Obey$Dir>.!Sprites”. If you are not sure how to create
  19878. icons there are instructions in the chapter on “Paint” in the User Guide
  19879. or you can find a set of ready-made sprites in a !Sprites directory on
  19880. this month’s program disc. You can just copy !Sprites into the !Protext
  19881. directory but do not forget to add the IconSprites line to the !Boot
  19882. file. The ready-mades have a simple “P5” design, with a border round the
  19883. files sprite, but are colourful enough to be readily identified in a
  19884. desktop directory.
  19885. 4.11
  19886. A do-it-yourself function key strip is also easily made, either using a
  19887. program which provides a template or by starting from scratch with
  19888. Protext’s excellent line drawing facility. One made this way is also on
  19889. this month’s disc. It has to be printed in two sections, one below the
  19890. other, as Protext can not print down the paper in landscape form. Anyone
  19891. who has a wide-carriage printer can copy the second section beside the
  19892. first by using the Protext “box” marking facility.
  19893. 4.11
  19894. Line drawing
  19895. 4.11
  19896. When making a grid by line drawing, the natural way is to begin by
  19897. drawing either the horizontal lines or the outside box shape and then
  19898. adding the verticals afterwards. If you do it this way, however, you may
  19899. find the vertical lines going slightly beyond the outside boundaries. To
  19900. correct this, draw the uprights with the up or down arrow key, as
  19901. normal, but use one of the horizontal, left or right, arrow keys for the
  19902. final stroke before reaching the horizontal boundary. The line will then
  19903. turn the corner to make a neat join instead of an intersection. Corners
  19904. are drawn in the same way.
  19905. 4.11
  19906. Although Protext comes with 48 printer drivers, there isn’t one for the
  19907. very popular Panasonic KX-P1081 printer, which I use. The FX80 printer
  19908. driver is suitable for it but will not print line drawings. So the
  19909. function key strip needs to have the IBM9 printer driver loaded and one
  19910. of the printer’s tiny DIP switches changed. These can be found below and
  19911. immediately to the right of the printer head when it is in its “home”
  19912. position on the extreme left. Lift up the thin strip of clear plastic
  19913. covering them and use a small screwdriver or similar implement to push
  19914. switch number one, on the extreme left, down (for off). The other
  19915. switches can probably be left as set but if you still have a problem try
  19916. putting either switch six or seven up (for on).
  19917. 4.11
  19918. Hopefully, Arnor will produce a key strip and their own official icons
  19919. when the RISC-OS version of Protext finally appears.
  19920. 4.11
  19921. Obvious when you know
  19922. 4.11
  19923. Finally, a few brief tips of the “it’s obvious when you know” variety.
  19924. You can find your version number of Protext by pressing <escape> and
  19925. reading the bar above the command line. This also shows you the current
  19926. directory and the selected printer driver.
  19927. 4.11
  19928. The “Swap” line at the top of the colour configuration menu puzzled me
  19929. for a time as it does not seem to be explained anywhere. I eventually
  19930. discovered that selecting it and pressing <return> shows the colours
  19931. used for alternate documents when more than one is loaded.
  19932. 4.11
  19933. It is a good idea to lock the files of templates, such as letter
  19934. headings, to prevent them being overwritten if a document you are
  19935. working on is automatically saved with the template’s name. If, for any
  19936. reason, you cannot lock the template, load it with the command “m” for
  19937. merge instead of “l” for load. The bar at the top of the screen will
  19938. show “No file” and you will be asked for a name before the document is
  19939. saved.  A
  19940. 4.11
  19941.  
  19942. Hints and Tips
  19943. 4.12
  19944. •   Basic line lengths revisited (Archive 4.10 p7) − The Basic line input
  19945. buffer is 238 characters and so this is the most you can type in from
  19946. the Basic prompt. Once entered, this line is tokenised before being
  19947. stored as part of a program. Most of the keywords are reduced to only
  19948. one byte, so the line ends up taking up much less room in a program. The
  19949. maximum length for a line in a program is 255 bytes, but four of these
  19950. bytes have special purposes (one is a line terminator, one the line
  19951. length and two the line number). This leaves 251 bytes for the rest of
  19952. the line. So what’s the point in allowing bigger lines in the program if
  19953. you can’t type them in? Well, you can by being devious. Try typing the
  19954. following at the Basic prompt:
  19955. 4.12
  19956. 10E.:E.:E.: etc
  19957. 4.12
  19958. until you hit the line limit and then press Return. Listing your program
  19959. now should reveal:
  19960. 4.12
  19961. 10ENDPROC:ENDPROC:ENDPROC: etc
  19962. 4.12
  19963. up to a length of about 790 characters! This line is perfectly valid and
  19964. would run OK (although I can’t think of a program where 79 ENDPROCs in a
  19965. row would be useful!) but is much too long to edit at the Basic prompt
  19966. or in the Basic Editor. It wouldn’t be sensible for the Basic Editor to
  19967. limit you to 251 characters since, once tokenised, your line would be
  19968. much shorter, so it allows you to type up to 369 characters hoping that
  19969. tokenising will bring it back to 251. It objects if you try to type in
  19970. more than 369 characters; it also objects if you type a shorter line
  19971. which would be longer than 251 characters once tokenised (try REM
  19972. followed by 300 letters). As for solving the problem, if you have a copy
  19973. of Twin, you could try loading your Basic program into it. Twin has no
  19974. line length limit and will cope with anything. Returning to Basic will
  19975. always work provided the resulting tokenised lines would be no longer
  19976. than 251 characters. Lorcan Mongey
  19977. 4.12
  19978. •   Citizen printer spare parts − You may be interested to know that you
  19979. can get spare parts for Citizen printers from XMA Ltd, Ruddington Lane,
  19980. Wilford, Nottingham, NG11 7EP. (0602 −818222) Rob Brown, Tadworth,
  19981. Surrey.
  19982. 4.12
  19983. •   Fatal error type = 5 − !Edit will report this error if you have too
  19984. many outline fonts in your !Fonts folder. This will prevent you from
  19985. editing any documents within !Edit. The following Basic program will
  19986. solve this problem by hiding the !Fonts folder before running !Edit and
  19987. then restoring it once !Edit has been run.
  19988. 4.12
  19989. 1. Rename the ‘!RunImage’ file inside the ‘!Edit’ folder as ‘EditImage’.
  19990. 4.12
  19991. 2. Type the following program in and then save it as ‘!RunImage’ in the
  19992. ‘!Edit’ folder.
  19993. 4.12
  19994. REM ><Edit$Dir>.!RunImage
  19995. 4.12
  19996. SYS “Wimp_Initialise”,200,&4B534154, “EditStart” TO ,taskid%
  19997. 4.12
  19998. *Set temp <Font$Prefix>
  19999. 4.12
  20000. *UnSet Font$Prefix
  20001. 4.12
  20002. *WimpSlot -min 160k -max 160k
  20003. 4.12
  20004. *WimpSlot -min 160k
  20005. 4.12
  20006. SYS “Wimp_StartTask”,“Run <Edit$Dir> .EditImage ”+FNenv_string
  20007. 4.12
  20008. *Set Font$Prefix <temp>
  20009. 4.12
  20010. *Unset temp
  20011. 4.12
  20012. SYS “Wimp_CloseDown”,,taskid% ,&4B534154
  20013. 4.12
  20014. END
  20015. 4.12
  20016.  
  20017. 4.12
  20018. DEFFNenv_string
  20019. 4.12
  20020. LOCAL env$,x%
  20021. 4.12
  20022. SYS “OS_GetEnv” TO env$
  20023. 4.12
  20024. IF LEN(env$)<6 THEN =“”
  20025. 4.12
  20026. WHILE INSTR(env$,“ ”,x%)>0
  20027. 4.12
  20028. x%=INSTR(env$,“ ”,x%)+1
  20029. 4.12
  20030. ENDWHILE
  20031. 4.12
  20032. =RIGHT$(env$,LEN(env$)-x%+1)
  20033. 4.12
  20034. •    Locating the I/O podule (a SWI number change) − Those writing code
  20035. for the I/O podule for use on different machines should note that Acorn
  20036. made a SWI number change between version 1.04 and 1.06 of the software
  20037. (use *Help Modules to find what version you have). Earlier issues of the
  20038. podule use &4043F for SWI “I/O _Podule_Hardware” whereas the later
  20039. versions use &40500. ARM code assembled on a machine with one version of
  20040. the software will not work on another machine with a different version
  20041. without changing this SWI number. Richard House, Surrey.
  20042. 4.12
  20043. •   PC screen fonts − If you are not overly fond of the chunky IBM
  20044. character set in the PC emulator, the following few lines of Basic will
  20045. modify the emulator ROM file with the BBC font of your choice.
  20046. 4.12
  20047. REM >PCFONT
  20048. 4.12
  20049. REM Merge BBC FONT file into !PC ROM file
  20050. 4.12
  20051. REM N.B. *** COPY ORIGINAL ROM FILE BEFORE RUNNING THIS ***
  20052. 4.12
  20053. :
  20054. 4.12
  20055. DIM rom% &2000 : offset%=&166E
  20056. 4.12
  20057. R$=“:4.$.!PC.ROM”
  20058. 4.12
  20059. OSCLI(“Load ”+R$+“ ”+STR$~rom%)
  20060. 4.12
  20061. A%=OPENIN(R$) : r1%=EXT#A% : CLOSE#A%
  20062. 4.12
  20063. :
  20064. 4.12
  20065. F%=OPENIN(“4:.BBCFONTS.NEWFONT”) : REM file of type &FF7
  20066. 4.12
  20067. REPEAT
  20068. 4.12
  20069. A%=BGET#F%
  20070. 4.12
  20071. IF A%<>23 THEN PRINT “This is not a BBC font file!” : END
  20072. 4.12
  20073. C%=BGET%F%
  20074. 4.12
  20075. FOR I%=0 TO 7
  20076. 4.12
  20077. rom%?(offset%+((C%+128) MOD 256) *8+ I%)=BGET#F%
  20078. 4.12
  20079. NEXT I%
  20080. 4.12
  20081. UNTIL EOF#F%
  20082. 4.12
  20083. CLOSE#F%
  20084. 4.12
  20085. :
  20086. 4.12
  20087. OSCLI(“Save ”+R$+“ ”STR$~rom%+ “ + ”+STR$~r1%)
  20088. 4.12
  20089. END
  20090. 4.12
  20091. This program has been used successfully on the ROM files supplied with
  20092. version 1.33 and the latest 1.60 (large and small) − each version stores
  20093. its VDU 23 character definitions from offset &166E onwards. Pete Bready,
  20094. Glasgow.
  20095. 4.12
  20096. •   Impression Junior styles? − In the June 1991 edition of Archive, it
  20097. was pointed out that Impression Junior does not have styles. Although it
  20098. does not have styles, it does have rulers. These are intended to define
  20099. margins and tab-stops, but they can be used for other things.
  20100. 4.12
  20101. If you save a text story with effects, you will see the definition of a
  20102. ruler, which looks like:
  20103. 4.12
  20104.  
  20105. 4.12
  20106. There will also be the definition of the BaseStyle, which contains a
  20107. number of additional commands. By copying some of these to the ruler
  20108. definition, you can create the equivalent of a style. As an example, a
  20109. ‘style’ that changes the font of the text subject to the ruler to greek,
  20110. could be, for example:
  20111. 4.12
  20112.  
  20113. 4.12
  20114. As Impression Junior does not have the facility to create rulers with
  20115. these extensions, they must be written using an ordinary text editor
  20116. (such as !Edit) and imported into Impression where they become rulers.
  20117. 4.12
  20118. The commands that I know work are:
  20119. 4.12
  20120. font <font name>   − e.g. Greek, Trinity.Medium, etc
  20121. 4.12
  20122. fontsize <size>pt   − 8 to 20 is reasonable
  20123. 4.12
  20124. fontaspect <size>%      −
  20125. 100 normal, 200 stretches to twice size
  20126. 4.12
  20127. fontcolour rgb = (<n>,<n>,<n>)  − n is from 0 to 1 or 0 to 100 (both
  20128. appear to work)
  20129. 4.12
  20130. linecolour rgb = (<n>,<n>,<n>)  − as above
  20131. 4.12
  20132. justify [left, right, centre, full]  − full is to both margins
  20133. 4.12
  20134. underline [0,1]      − other
  20135. values also work but give strange underline
  20136. 4.12
  20137. strikeout [on, off]      −
  20138. writes ‘-’ over characters
  20139. 4.12
  20140. script [off, sub, super]      −
  20141. sub and super-scripts
  20142. 4.12
  20143. leader “<text>”      − overwrites
  20144. tab character
  20145. 4.12
  20146. By using these additional commands, it is possible to generate some very
  20147. useful rulers.
  20148. 4.12
  20149. Simon Callan, Borehamwood.  A
  20150. 4.12
  20151.    
  20152. Hints and Tips
  20153. 5.1
  20154. •   FileUtils − Anyone using Ben Summers’ FileUtils should note that
  20155. <ctrl-shift-F2>, <ctrl-shift-F3> and <ctrl-shift-F4> will still call up
  20156. the FileUtils routines even when, say, working in Impression. This can
  20157. give a nasty shock if you are, for example, trying to insert preset
  20158. styles using <ctrl-shift-F4> and a “change filetype” dialogue window
  20159. pops up. Mike Hobart, Cambridge.
  20160. 5.1
  20161. •   Installing Desktop C − If you have recently upgraded from C to Desktop
  20162. C, you may have a little difficulty installing Desktop C onto your hard
  20163. disc. When you first try to run the ‘Install’ program, it will stop
  20164. abruptly half way through the second of the four discs, with no clues as
  20165. to what has happened. This is because the ‘Install’ program tries to
  20166. create a directory called $.User. Cmodule, which already exists from
  20167. your previous installation of C and so the program crashes. The solution
  20168. is simple, just delete the old $.User.Cmodule directory before attempt
  20169. ing to install Desktop C.   D R Kennard, London.
  20170. 5.1
  20171. •   LBP-4 CaSPL − Switching between Video output (for the CC Hi-Res board)
  20172. and CaSPL output of the LBP-4 doesn’t appear to be documented in the
  20173. manual. Here is how it can be done:
  20174. 5.1
  20175. From Video to CaSPL mode:
  20176. 5.1
  20177. 1.   Hold down “Menu” for 3 seconds until “Mode=Video” is displayed.
  20178. 5.1
  20179. 2.   Tap the “Menu” key once to display “Mode=CaSPL”
  20180. 5.1
  20181. 3.   Tap “Enter”. The LCD will read “01 Ex Exit” then “00 Ready A4”
  20182. 5.1
  20183. 4.   Tap the “Off-line” key to take the machine off-line (if the green
  20184. on-line indicator is lit).
  20185. 5.1
  20186. 5.   Tap “Feeder Select”.
  20187. 5.1
  20188. 6.   Tap “Menu”. The menu as described in the manual is now displayed.
  20189. 5.1
  20190. From CaSPL to Video:
  20191. 5.1
  20192. 1.   Take the printer off-line.
  20193. 5.1
  20194. 2.   Hold down the “Menu” for 3 seconds − “Mode=CaSPL” is displayed.
  20195. 5.1
  20196. 3.   Tap “Menu” again − “Mode=Video” is displayed.
  20197. 5.1
  20198. 4.   Tap “Enter”.
  20199. 5.1
  20200. 5.   You are now back in Video mode.
  20201. 5.1
  20202. Mike, Bainbridge, Derby.
  20203. 5.1
  20204. Impression Hints & Tips
  20205. 5.1
  20206. •   Adding a frame at beginning of a story − It is not immediately obvious
  20207. (well, it wasn’t to me!) how to add extra frames into a story that runs
  20208. through a number of frames. Suppose you have two frames, B and C (I’ll
  20209. get to A in a minute) − perhaps they are two main columns on this page −
  20210. and you want to split column B into two frames leaving a gap in the
  20211. middle. What you do is firstly shorten frame B using the frame handle at
  20212. the middle of the bottom of the frame. Then you use <ctrl-I> and create
  20213. a new frame wherever you want it under frame B (let’s call it frame B2).
  20214. Now click on frame B with <select> and then on frame B2 with <adjust>
  20215. and the text will flow into it so that it runs B−B2−C.
  20216. 5.1
  20217. Now suppose you want the text to start in a frame before frame B. (Let’s
  20218. call it frame A.) The technique is to create the new frame, A, wherever
  20219. you want it using <ctrl-I>. Then click on frame B with <select> and then
  20220. on frame A with <adjust>. The text will now flow into it so that it runs
  20221. B−A−B2−C−etc. (N.B. This won’t work unless frames A and B are on the
  20222. same page because you cannot flow text backwards across a page bound
  20223. ary.) Then click on B and use <ctrl-X> to delete it. The flow is now
  20224. just A−B2−C−etc. Finally, you create a new copy of frame B by using
  20225. <ctrl-V>, click on frame A with <select> and the new B with <adjust> and
  20226. the flow will be A−B−B2−C−etc.
  20227. 5.1
  20228. •   Dual window problems solved? − A few issues ago, I mentioned the
  20229. problem that if you open a second window on a document and then expand
  20230. and contract that window (so that you can alternately use two different
  20231. scale views) each time you shrink view 2 using the icon at the top right
  20232. of the window, it doesn’t stay at the place in the document that you
  20233. have just been working on. It always seemed (in my case) to go back to
  20234. somewhere earlier in the document. No one has offered any solution but
  20235. it seems to me that it goes back to wherever you last added a frame into
  20236. that window. So if you want to “keep your place” in the second window,
  20237. use <ctrl-I> to create a new frame at that place in the document and
  20238. then use <ctrl-X> to delete it again. Crude, but it seems to work. (No,
  20239. it doesn’t, not always. Drat, I thought I had solved it! Come on,
  20240. someone must be able to solve this one − I’ll give a free Archive mug to
  20241. the first person to solve it. Ed.)
  20242. 5.1
  20243. • Equasor and matrices − The biggest drawback Equasor has for me as a
  20244. mathematics teacher is its inability − at least in version 1.00 − to
  20245. handle vectors and matrices.
  20246. 5.1
  20247. There is, however, a way in which a very credible matrix can be created
  20248. − with a small amount of extra work:
  20249. 5.1
  20250. I build the columns as multiple fractions, and then enclose everything
  20251. in brackets; I drop the file into Draw, remove the fraction bars and
  20252. then align the brackets with the numbers.
  20253. 5.1
  20254. Jochen Konietzko, Köln, Germany
  20255. 5.1
  20256. •   Special characters − Now I’m sure you ALL knew this, but I didn’t
  20257. until I read this month’s PipeLine article. The Alt key is extremely
  20258. useful for inserting special characters in the text. I had discovered
  20259. that <Alt-space> (that’s holding the Alt key down and tapping on the
  20260. space bar) gave a ‘hard’ space where you don’t what the words (e.g. the
  20261. halves of a postcode) to be split across the end of one line and the
  20262. beginning of the next, and I had discovered the idea of using Alt
  20263. together with the numbers on the numeric keypad to produce special
  20264. characters, but how about this...
  20265. 5.1
  20266.      a² + b² = c³
  20267. 5.1
  20268. I produced that in seconds without using superscript. The ² is produced
  20269. with <Alt-2> and the ³ with (yes, you’ve guessed) <Alt-3>. In other
  20270. words, you hold down the Alt key, as if it were the shift key, and type
  20271. 2 or 3. Here is a table of the ones I have found but note that this only
  20272. applies to Trinity font which I am using. Other fonts may be different
  20273. but, generally, they tend to stick to using the same symbols for the
  20274. same ASCII numbers which the Alt key produces. The third column is the
  20275. ASCII number produced.
  20276. 5.1
  20277. <Alt-1>   ¹   185
  20278. 5.1
  20279. <Alt-2>   ²   178
  20280. 5.1
  20281. <Alt-3>   ³   179
  20282. 5.1
  20283. <Alt-9>   ±   177
  20284. 5.1
  20285. <Alt-0>   °    176
  20286. 5.1
  20287. <Alt-C>   ¢   162
  20288. 5.1
  20289. <Shift-Alt-C>   ©   169
  20290. 5.1
  20291. <Alt-M>   µ   181
  20292. 5.1
  20293. <Alt-R>   ®   174
  20294. 5.1
  20295. <Alt-S>   §   167
  20296. 5.1
  20297. <Alt-X>   »   187
  20298. 5.1
  20299. <Alt-Y>   ¥   165
  20300. 5.1
  20301. <Alt-Z>   «   171
  20302. 5.1
  20303. <Alt-`>   ¬   172
  20304. 5.1
  20305. (top left key under <esc>)
  20306. 5.1
  20307. <Alt-,>   ×   215
  20308. 5.1
  20309. <Alt-.>   ÷   247
  20310. 5.1
  20311. <Alt-space>      160 (hard space)
  20312. 5.1
  20313. If you have found any that I have missed, perhaps in other fonts, let us
  20314. know. Ed.
  20315. 5.1
  20316. • Spell checking Edit documents − Whenever I typed a longish Edit text
  20317. file, I used to regret the absence of a spell checker. For Impression
  20318. users, this poses no problem:
  20319. 5.1
  20320. Simply drop the Edit file in question into an empty Impression frame,
  20321. have Impression check the spelling, then export the text back into Edit
  20322. by saving just the text story without styles. You can drag the text
  20323. story onto the Edit icon to have another look at it or save it in the
  20324. usual way directly to a disk. The import/export takes just a few
  20325. seconds, so this is nearly as good as a spell checker built into Edit
  20326. itself. Jochen Konietzko, Köln, Germany  A
  20327. 5.1
  20328.  
  20329. 5.1
  20330. Silicon Vision
  20331. 5.1
  20332. New
  20333. 5.1
  20334.  
  20335. 5.1
  20336. Colton
  20337. 5.1
  20338.  
  20339. 5.1
  20340. 4.12 p21
  20341. 5.1
  20342.  
  20343. 5.1
  20344. Matters Arising
  20345. 5.1
  20346. •   Archimedes’ Tutor − Simon Anthony has produced a Beginner’s D.I.Y.
  20347. Introduction to the Archimedes using the !Hyper application on Shareware
  20348. Disc 19. If anyone is interested they should contact him directly at 62
  20349. Rutland Road, West Bridgford, Nottingham, NG2 5DG.
  20350. 5.1
  20351. •   ArmSort − Fast Array Sorts − The author replies... The reviewer
  20352. (Ashley Bowden in Archive 4.12 p53) seems to have created a problem with
  20353. the flag values. The ArmSort documentation DID clearly state that for
  20354. the CALL sort “The parameters must all be variables, but may be of any
  20355. name”. If CALL sort,test%() ,128 is used, then it is Basic that objects
  20356. with “Syntax Error”, ERR=16, because it is a Basic requirement that all
  20357. CALL parameters are variables not constants. Thus it is rather unfair
  20358. for the reviewer to claim that to have to use variables is “.. very
  20359. unorthodox, and mention should be made in the documentation.” ArmSort
  20360. errors are comprehensive and are very clearly documented.
  20361. 5.1
  20362. This ‘problem’ wasted about a third of the review, which could have been
  20363. better used to mention the PROCsort and SWI interfaces or the ability to
  20364. sort on absolute numeric values, or with null strings low or high.
  20365. 5.1
  20366. May I also suggest that all software reviews should clearly state what
  20367. version is being reviewed: the ArmSort review copy was Version 2.12,
  20368. sent to Archive in February. The current Version is 2.51, which has the
  20369. following improvements: sort time reductions of between 30% and nearly
  20370. 50%; the ability to sort strings from any position, or by length; the
  20371. ability to specify a key sequence; new procedures for a fast binary
  20372. search of sorted arrays; and all programs now do run easily from the
  20373. desktop. All users have had free upgrades and seem happy with the
  20374. product. Martin Avison, Avisoft.
  20375. 5.1
  20376. (Sorry if we seem to have reviewed an out-of-date product but when
  20377. someone sends software to us for review, we have to assume it is a
  20378. “stable” version. If the software has gone from version 2.12 to version
  20379. 2.51 since February, this indicates continuous development. This is fine
  20380. but, if significant changes are made, the onus is on the software
  20381. supplier to send us the latest version. This product was still on the
  20382. “software to be reviewed” list in the May edition of Archive. If Martin
  20383. had noticed this and sent us the latest version at that stage, the
  20384. difficulty might have been avoided. Ed.)
  20385. 5.1
  20386. •   MidiVision Update − Koen Lefever has sent us an updated version the
  20387. MidiVision program on Shareware Disc 33. It is now compatible with the
  20388. new Acorn MIDI Podule ROM and capable of detecting real time messages.
  20389. The new version has been put on this month’s program disc.
  20390. 5.1
  20391. •   PRES Disc Interface & DFS − In the review in Archive 4.11 p27 we
  20392. referred to difficulties in reading 40 track BBC discs. PRES suggested
  20393. that the problem may be due to “residual data” on the discs. In other
  20394. words, they are suggesting that the problem may lie with discs that have
  20395. been written onto by different 40 track drives, some with narrow heads,
  20396. as in 40/80 drives, and some with wider tracks as in true 40 track
  20397. drives. It would be interesting to hear other people’s experiences on
  20398. this. We have also found that it is sometimes necessary to slow the head
  20399. stepping time right down as low as it will go in order to read 40 track
  20400. discs. (We also used a rather old address for PRES. It is currently P.O.
  20401. Box 319, Lightwater, Surrey, GU18 5PW. 0276−72046, fax 51427.)
  20402. 5.1
  20403. •   RISC-OS Dreaming − I would like to reply to Oliver Gunasekara’s
  20404. letter, RISC-OS Dreaming, published in Archive 4.12 p15. Many of
  20405. Oliver’s suggestions have been extensively discussed in the USENET news-
  20406. group dedicated to Acorn machines. Well-informed contributions from
  20407. Acorn staff (in a private capacity) and experienced programmers (RISC-OS
  20408. and otherwise) allow fairly definite predictions to be made as to the
  20409. likelihood of some of these suggestions being realised in later version
  20410. of RISC-OS.
  20411. 5.1
  20412. Firstly, there is almost no chance of proper demand paged virtual memory
  20413. being implemented under RISC-OS on current generation ARM processors.
  20414. The problem is that much (if not all) of RISC-OS runs with the ARM
  20415. processor in its supervisor mode. In this mode, the ARM-2 and ARM-3 are
  20416. unable to implement virtual memory. Not enough information is saved to
  20417. enable execution to be resumed after an attempt to access memory not
  20418. physically present causes the MEMC memory controller to interrupt
  20419. execution. Thus, virtual memory would require a drastic rewrite of RISC-
  20420. OS so that any code that might access virtual memory runs in user mode
  20421. or avoids memory not physically present. Acorn almost certainly do not
  20422. have the resources to do the necessary rewrite. Simpler, less effective
  20423. forms of virtual memory such as swapping out non-running programs are
  20424. possible, but would still be very complicated.
  20425. 5.1
  20426. Pre-emptive multi-tasking is, on the other hand, quite possible. It is
  20427. just that doing it without introducing subtle bugs into software written
  20428. under the assumption that multi-tasking is co-operative is fiddly. As
  20429. with virtual memory, the fact that RISC-OS did not allow for pre-emptive
  20430. multi-tasking, when originally written, makes it messy to implement
  20431. later on. Even running other tasks when the current task is blocked,
  20432. waiting for i/o, is rather tricky to implement though, according to the
  20433. grape-vine, this does indeed happen to some extent in RISC-OS 3.
  20434. 5.1
  20435. As to nicer system fonts, better design, TCP/IP file-sharing and hot-
  20436. linking − let’s hope it happens. There’s no technical obstacle and these
  20437. are definitely things necessary for Acorn to keep up with the state of
  20438. the art. A new file-system allowing more files in a directory and longer
  20439. filenames would also go down well. It would be a real boon to people
  20440. like myself who have to use RISC-OS machines in conjunction with UNIX or
  20441. MesS-DOS boxes.  Andrew Stevens, Overton.
  20442. 5.1
  20443. •   RISC-OS Dreaming − I would agree with many of the points about RISC-OS
  20444. 2.0 put forward (in Archive 4.12 p15), by Oliver Gunasekara. However,
  20445. I’m not sure that making RISC-OS look more like other graphical
  20446. interfaces will necessarily bring us much benefit.
  20447. 5.1
  20448. I am responsible for several different computer systems (micros and
  20449. minis) each of which has its own user interface from the quirkiness of
  20450. the Apple and Atari systems, to the smooth, powerful X-Windows systems.
  20451. Some of the staff prefer one system, some prefer another. It’s a bit
  20452. like choosing your favourite car, you get the one that suits you.
  20453. 5.1
  20454. Strangely enough, considering its sales, the least popular GUI in our
  20455. department is Windows 3.0. Even allowing for its deficiencies, RISC-OS
  20456. seems to have become the preferred choice for more than half our
  20457. department. Whether this is due to RISC-OS itself, applications like
  20458. Impression or the speed of the ARM3 powered machines, I’m not sure. What
  20459. I am sure of is that RISC-OS is quite capable of winning converts from
  20460. other systems.
  20461. 5.1
  20462. Even so, let’s hope that RISC-OS 3 contains a lot of those improvements
  20463. mentioned by Oliver. D Hutchinson, Sheffield.  A
  20464. 5.1
  20465.  
  20466.  
  20467.  
  20468. The Engineer Speaks...
  20469. 5.1
  20470. Ray Maidstone
  20471. 5.1
  20472. For the last few months, Ray Maidstone has been, effectively, the N.C.S.
  20473. Service Centre. He has done a great job fixing dead or dying Archimedes
  20474. computers for us and upgrading the memory of A310s. In doing so, he has
  20475. come across various recurring problems which could be avoided if a few
  20476. precautions were followed.
  20477. 5.1
  20478. Here are some hints & tips which should help to keep your Archimedes in
  20479. tip-top condition. A word of warning though, some of the things I am
  20480. suggesting should not be attempted unless you really feel competent to
  20481. do so. The general rule is, if in doubt, ask for help!
  20482. 5.1
  20483. •   300 and early 400 series keyboards − (See also the article on page 37)
  20484. These keyboards do not have sprung contacts coming together, but foil
  20485. closing over multiple contact points on sprung pads. Various people have
  20486. informed me that they have sprayed their keyboards with switch cleaner
  20487. to improve things when they have had intermittent contacts on one or
  20488. more keys. They may have got away with it, but it is my view that these
  20489. keyboards should never be sprayed with switch cleaner. The only
  20490. recommended method of servicing this item is to dismantle (but ONLY if
  20491. you feel competent to do so!) and remove foreign particles with a soft
  20492. brush and a vacuum cleaner. Anything sticky or difficult to remove is
  20493. best left to your Service Centre. WARNING: Using switch cleaner which
  20494. contains an organic solvent can destroy components within the keyboard
  20495. and slowly but surely render it useless. Be warned! (We have a dead
  20496. keyboard available for inspection if you are in any doubt! It was killed
  20497. by using Tandy’s Tix Electronic Switch Cleaner. Ed)
  20498. 5.1
  20499. •   Mouse − If you unplug your mouse, the recommended procedure for
  20500. reconnection is to first disconnect the keyboard from the computer, plug
  20501. the mouse into the keyboard then reconnect to the computer. The reason
  20502. for this is that the mouse contains one solitary chip, which has no
  20503. protection from spikes at switch-on from the outside world, whereas the
  20504. keyboard has circuitry that is slightly better equipped to cope with any
  20505. misadventures. Plugging the mouse into the keyboard and then plugging
  20506. the keyboard into the computer is the safest method and could well save
  20507. you money.
  20508. 5.1
  20509. •   Monitor smear − On the 400 series computers, it is possible to get a
  20510. composite video signal out of the sync socket which you can use for a
  20511. mono monitor. This is done by making links LK5 and LK6. However, if
  20512. these links are made, it can cause problems with certain high resolution
  20513. monitors. You get a certain amount of smearing on the ends of horizontal
  20514. lines. This effect is caused by the electronics of the Archimedes and
  20515. can only be cured by removing the links. (I have a confession to make.
  20516. Until we discovered this problem, we always tested our 400 series
  20517. computers using a mono monitor. We added links 5 and 6 but did not
  20518. remove them before sending out the computers. If you have had a 400
  20519. series computer from us, I suggest you check for this effect and remove
  20520. the links if necessary. Ed)
  20521. 5.1
  20522. •   Video RGB outlet − On the 310 and early 400 series, it is possible to
  20523. destroy the VIDC chip by plugging in the video lead to either the
  20524. computer or the monitor if one or both of these items are switched on.
  20525. The electronics of this socket do not accept the slightest static
  20526. variation and any deviation will damage the VIDC chip. Whoops! − there
  20527. goes another £30! I have designed a multiple diode module as a service
  20528. modification which upgrades these old machines to the new static-
  20529. protected specification. Whilst Acorn confirm that my modification is
  20530. “Archimedes-legal”, they will not put their name to it as yet. This
  20531. modification has been particularly well received by schools, as it stops
  20532. pupils being able to blow up their computers!
  20533. 5.1
  20534. •   Fan filters − With the fan driving air into the filter (lower half of
  20535. the diagram below) it is possible for the filter, in its blocked state,
  20536. to completely eliminate all airflow within the computer. However, with
  20537. the fan sucking air through the filter (upper half of the diagram
  20538. below), even if the filter becomes totally blocked, residual air
  20539. currents will still flow within the computer, providing some “last
  20540. resort” cooling. Also, with the filter on the outside of the fan,
  20541. cleaning couldn’t be easier. All that is needed is to slide the lid back
  20542. 10 cm (or 4 inches for those of us still in Imperial!) and suck the dust
  20543. off the filter with a vacuum cleaner.
  20544. 5.1
  20545. •   Hard drive parking − After much debate and the dismantling of two
  20546. unserviceable hard drives, I have found that, in order to give your data
  20547. maximum protection at closedown, *BYE must be followed by *SHUTDOWN.
  20548. These two commands, although slightly similar, do not seem to perform
  20549. the same task and, to my satisfaction, have been proven to be necessary
  20550. in the order stated. The effects of closing the drive down can be
  20551. verified acoustically and visually, e.g. *BYE will produce one staccato
  20552. tick noise and a short flash on the hard drive LED, but this does not
  20553. mean the drive is fully parked. Typing *SHUTDOWN will produce a multiple
  20554. wink of the hard drive LED and a triple tick noise from the drive. Take
  20555. my word that this guarantees total shutdown of the drive. If *SHUTDOWN
  20556. is typed without having typed *BYE, a single tick will be heard and the
  20557. drive will simply have moved the head to a different track, but it will
  20558. not be fully parked. (Different effects happen on different drives under
  20559. this condition.)
  20560. 5.1
  20561. (Some may call this a “belt & braces” method, but when it comes to
  20562. protecting several hundred pounds worth of hard drive, I prefer to err
  20563. on the side of caution. Ed)
  20564. 5.1
  20565. •   Removable hard drive parking − The command DISMOUNT brought up by
  20566. clicking <menu> on the SCSI icon, does not mean your drive is parked. It
  20567. simply means that the drive has shut its motor down and that the
  20568. software has “forgotten” about the drive in question. At this point, if
  20569. you switch the power off, the heads have been left out over the disc at
  20570. the last track you were using and will be in the same position next time
  20571. you switch on the power. In order to eliminate the possibility of power-
  20572. on destroying any data bits, the centre button on the removable drive
  20573. must be pressed and the drive fully disengaged with the lever. This
  20574. operation mechanically parks the heads off the disc and is the only way
  20575. to guarantee this.
  20576. 5.1
  20577. •   Stray metalware − When removing the motherboard on the 300/400 series,
  20578. it is very possible to dislodge one or more of the spring speed nuts
  20579. (for the two rear self tapping screws that “get in the way” when
  20580. removing the board). Make sure these are firmly in place when reassem
  20581. bling − better still, remove them, clamp them slightly more closed and
  20582. refit. This will prevent any further mishap which could cause shorting
  20583. under the main PCB.
  20584. 5.1
  20585. •   Stuck floppy discs − It is unfortunately possible, now and again, for
  20586. a floppy disc to become stuck in the drive. This will be due to one of
  20587. the following causes, and if you wish to keep costs to a minimum, NEVER
  20588. tug at, or forcibly remove, the stuck item.
  20589. 5.1
  20590. (Again, we have u/s floppy drives available for inspection if you need
  20591. proof. Ed.)
  20592. 5.1
  20593. 1. The metal sliding cover on the disc can become widened, perhaps due
  20594. to being bent in the post, or being sat on or whatever. As the metalwork
  20595. of the slider opens, it will act like a ratchet allowing the disc to go
  20596. in but not to come out without difficulty.
  20597. 5.1
  20598. 2. The spring that returns the metal cover can become unlaced and behave
  20599. like a fish hook, snagging the unlocking post within the drive.
  20600. 5.1
  20601. 3. The metal screening plate on the upper disc reading head within the
  20602. drive can become dislodged and catching the plastic work of the disc
  20603. (particularly on the older Sony drives).
  20604. 5.1
  20605. In ALL cases, if the drive is removed by somebody competent to do so,
  20606. you should find that delicate easing will allow the disc to come out
  20607. again without damaging the drive and, 9 times out of 10, the disc can
  20608. also be saved.
  20609. 5.1
  20610. In the case of the metal head shield of the Sony drive, simply throw it
  20611. away as it was later found to be unnecessary. Where the metal gate of
  20612. the drive is distorted, it is quite acceptable to remove this item by
  20613. unfolding it and removing the spring. The disc will operate without the
  20614. metal cover but keep little fingers out − remember the 5¼“ floppies?  A
  20615. 5.1
  20616.  
  20617. Hints and Tips
  20618. 5.2
  20619. •   Fatal error type = 5 revisited (Archive 4.12 p9) − It’s not only !Edit
  20620. that reports this error, !Draw and some other Applications abort with a
  20621. similar error, but you might want to use !Edit, for example, with fonts.
  20622. The version in Archive 4.12 p9 simply hides the !Font-folder, so the
  20623. idea is to have the Applications just to see part of the !Fonts folder.
  20624. The easiest thing to do is simply to split up the fonts-directory into
  20625. directories − i.e. create two directories within !Fonts − in the first
  20626. directory (maybe SmallFonts within your !Fonts Folder) just put the
  20627. really necessary fonts in (just Trinity, Homerton, Corpus or so), but
  20628. remember that there may only be up to 50 fonts (approximately) −
  20629. including styles (say Italic, Medium, Bold etc). In the second directory
  20630. (maybe LargeFonts) put every font that is not already included in the
  20631. first directory.
  20632. 5.2
  20633. The next thing to change is your !Boot and !Run-File from the !Fonts
  20634. application.
  20635. 5.2
  20636. The !Boot file should read as follows:
  20637. 5.2
  20638. | !Boot file for !Fonts
  20639. 5.2
  20640. | *********************
  20641. 5.2
  20642. IconSprites <Obey$Dir>.!Sprites
  20643. 5.2
  20644. RMEnsure FontManager 2.42 RMLoad <Obey$Dir>.Fonts
  20645. 5.2
  20646. RMEnsure SuperSample 0.04 RMLoad <Obey$Dir>.Super
  20647. 5.2
  20648. Set Small$Fonts <Obey$Dir>. SmallFonts.
  20649. 5.2
  20650. Set Large$Fonts <Small$Fonts> ,<Obey$Dir>.LargeFonts.
  20651. 5.2
  20652. If “<Font$Prefix>”=“” Then SetMacro Font$Path <Font$Prefix>
  20653. 5.2
  20654. If “<Font$Prefix>”=“” Then Set Font$Prefix <Large$Fonts>
  20655. 5.2
  20656. SET Alias$@RunType_745 RUN <Obey$Dir>.FontHelp -Obey %%*0
  20657. 5.2
  20658. SET File$Type_745 FontObey
  20659. 5.2
  20660.  
  20661. 5.2
  20662. The !Run file should read as follows:
  20663. 5.2
  20664. | !Run file for !Fonts
  20665. 5.2
  20666. | ********************
  20667. 5.2
  20668. Obey <Obey$Dir>.!Boot
  20669. 5.2
  20670. Echo Outline Font Manager 2.42 installed.
  20671. 5.2
  20672. Echo Fonts now available:
  20673. 5.2
  20674. Echo
  20675. 5.2
  20676. FontCat
  20677. 5.2
  20678.  
  20679. 5.2
  20680. In addition, you have to create a Basic program called Fonthelp, which
  20681. should be situated in the !Font folder and should read like this:
  20682. 5.2
  20683. REM >FontHelp  Version 1.00 20.1.91
  20684. 5.2
  20685. REM *******************************
  20686. 5.2
  20687. REM Written by: Martin Sperl
  20688. 5.2
  20689. REM             Nattergasse 12/32
  20690. 5.2
  20691. REM             A-1170 Vienna (Wien)
  20692. 5.2
  20693. REM             AUSTRIA
  20694. 5.2
  20695.  
  20696. 5.2
  20697. END=&A000
  20698. 5.2
  20699. DIM Data 255
  20700. 5.2
  20701. SYS“OS_GetEnv” TO ENV$
  20702. 5.2
  20703. ENV$=MID$(ENV$,INSTR(ENV$,“-Obey ”) +6)
  20704. 5.2
  20705. *SET Font$Prefix <Small$Fonts>
  20706. 5.2
  20707. SYS “Hourglass_On”
  20708. 5.2
  20709. SYS “Wimp_Initialise”,200, &4B534154,“**LoadMore**”
  20710. 5.2
  20711.  TO ,TaskHandle%
  20712. 5.2
  20713. SYS “Wimp_StartTask”,“OBEY ”+ENV$
  20714. 5.2
  20715. REPEAT
  20716. 5.2
  20717. SYS “Wimp_Poll”,0,Data TO R%
  20718. 5.2
  20719. UNTIL R%=0
  20720. 5.2
  20721. SYS “Wimp_CloseDown”,TaskHandle%
  20722. 5.2
  20723. *SET Font$Prefix <Large$Fonts>
  20724. 5.2
  20725. SYS “Hourglass_Off”
  20726. 5.2
  20727. END
  20728. 5.2
  20729. Then create a sprite called “file_745” (maybe the same sprite as for an
  20730. Obey-file, but another colour) and include it in the !Sprites file of
  20731. !Fonts.
  20732. 5.2
  20733. To start an application which can only handle some fonts without errors
  20734. just change the Filetype of the !Run-file with “Settype !Run FontObey”
  20735. to FontObey. Then you can start the application as normal without having
  20736. to worry about fonts at all.
  20737. 5.2
  20738. Martin Sperl, Austria
  20739. 5.2
  20740. •   Formatting PC disks − If, like me, you do not have a PC Filer on your
  20741. Archimedes you will have to format DOS diskettes (for use with the PC
  20742. Emulator) on a PC. If your PC has a 1.44M drive the standard FORMAT
  20743. command needs modifying. The command to use is
  20744. 5.2
  20745. FORMAT  A:  /N:9  /T:80
  20746. 5.2
  20747. This certainly works on the PS/2 55SX I have at work.  Richard Wheeler,
  20748. Wokingham  A
  20749. 5.2
  20750.  
  20751. 5.2
  20752. Impression H & T
  20753. 5.2
  20754. •   Function key changes − Computer Concepts have chosen to use <ctrl-F3>
  20755. and <ctrl-F4> for ‘save’ and ‘search and replace’ instead of the more
  20756. standard <F3> and <F4>. If you prefer to use the latter, simply go into
  20757. the edit styles dialogue (<ctrl-F6>), select first italic and then bold
  20758. and, on each, change the keyboard shortcut (or delete it altogether), as
  20759. follows... You could, for example, change from <F3> to <shift-ctrl-F3>
  20760. by clicking in the shortcut box, pressing <ctrl-U> to delete the
  20761. existing text and pressing <shift-ctrl-F3>, at which point the words
  20762. “<shift-ctrl-F3>” will appear in the box. Click OK and <F3> will now
  20763. produce the desired “save” effect.
  20764. 5.2
  20765. If you already have a lot of documents, this could prove a frustration
  20766. since you would have to do this with every document individually. Also,
  20767. you would need to go into Impression’s Auto directory and edit the
  20768. default document. Michael Ben-Gershon, Israel.
  20769. 5.2
  20770. •   Only 77 graphics frames allowed in a chapter − Impression won’t allow
  20771. more than 77 graphics frames in a single chapter. This is due to the
  20772. ADFS limitation of 77 files per directory − earlier versions of
  20773. Impression (2.03) normally crashed after loading the offending file when
  20774. displaying. Impression 2.1 does not allow to save a file with more than
  20775. 77 graphics-frames per chapter. I mentioned it to CC but they told me
  20776. “This is something that would be extremely difficult to overcome. It
  20777. should only affect a very small percentage of users”. So beware of too
  20778. many frames in one chapter !!! Martin Sperl, Austria
  20779. 5.2
  20780. Couldn’t you get round this by putting several draw objects together in
  20781. a single file and then show different parts of the same file in
  20782. different frames? I haven’t tried it, but it should work. Ed.
  20783. 5.2
  20784. •   Running Impression documents from !TinyDirs − If you use !TinyDirs to
  20785. install an Impression document on the icon bar and then click on it to
  20786. run it, a new copy of !Impress will be fired up even if one is already
  20787. running.
  20788. 5.2
  20789. This seems to be because of a small mistake in the !TinyDirs.!RunImage
  20790. programme. In the PROCdataopen procedure are two lines which read as
  20791. follows:
  20792. 5.2
  20793. 900 q%?(44+LEN$(q%+44))=0
  20794. 5.2
  20795. 910 q%!0=(48+LEN$(q%+44))ANDNOT3
  20796. 5.2
  20797. If you reverse the order of these two lines the program runs correctly.
  20798. Hugh Eagle, Horsham
  20799. 5.2
  20800. •   Special Characters − The full list of ISO 8859 characters is included
  20801. in the Archimedes User Guide, e.g. page 455 for the Latin 1 alphabet.
  20802. However, it’s not too helpful in that it is listed in hexadecimal. If
  20803. you want to enter characters using <Alt> and the numeric keypad, you
  20804. need to know the decimal numbers. Those of you with EFF fonts will have
  20805. a manual that shows various of the character sets by decimal number.
  20806. This is particularly useful for Zapf Dingbats and MathGreek fonts. Jim
  20807. Nottingham, York.
  20808. 5.2
  20809. (For those without EFF fonts, I have put an Impression file on the
  20810. monthly program disc so that you can print out your own lists of
  20811. characters just by changing the font in the style definition. Ed.)
  20812. 5.2
  20813. • Wrong sprite colours in Impression − If, when you drag a sprite into
  20814. an Impression frame, the colours come out all wrong, it’s probably
  20815. because the sprite has not got a palette. If so, the answer is to give
  20816. it a palette, which can be done as follows:
  20817. 5.2
  20818. 1.   Load the sprite file containing your sprite into !Paint.
  20819. 5.2
  20820. 2.   Double click on the thumbnail picture of the sprite you want to
  20821. alter.
  20822. 5.2
  20823. 3.   Click <menu> over the sprite window that now appears, then move to
  20824. the Edit submenu and click on the Palette item at the bottom.
  20825. 5.2
  20826. 4.   Save the amended sprite file.
  20827. 5.2
  20828. 5.   Load the amended sprite back into Impression.
  20829. 5.2
  20830. (Note: if you don’t want to keep the amended sprite, you can, if you
  20831. like, shortcut steps 4 and 5 and save the sprite direct from !Paint into
  20832. Impression.) Hugh Eagle, Horsham  A
  20833. 5.2
  20834.  
  20835.  
  20836.  
  20837. Finally, Andrew Scott...
  20838. 5.2
  20839. The following comments and hints are based on my first week of using the
  20840. machine which, from the outset, I must say is brilliant, especially
  20841. compared with my old Archimedes A310.
  20842. 5.2
  20843. During the time I have had the machine, I have tried quite a number of
  20844. applications. Now, whilst most of them have worked perfectly, I have had
  20845. problems with the following:  Atomwide Hi-Res. modes, Jinxter and
  20846. Corruption adventures (CIS Adventure pack), Beebug Toolbox disc sector
  20847. editor, Data Store’s FontFX (version 4.04), Mitre Software’s DiscTree
  20848. (version 2.16) and !DSEdit, PD sound sample player.
  20849. 5.2
  20850. The Atomwide mode designer comes with a number of sets of modes for
  20851. various monitors, but none of these is completely suitable for the A5000
  20852. and Acorn’s multisync monitor. The mode designer application, however,
  20853. works fine, provided you remember to select monitor type 1, and machine
  20854. A540/A5000. Using this, it is quite straightforward to modify the hi-
  20855. res. modes (SVGA, 102 etc.) to produce working versions of these.
  20856. However, make sure that you work in mode 27 while defining the new
  20857. modes, as some of the other modes (12, 15 etc.) are redefined by the
  20858. standard mode module (MegaModes), and this can produce some strange
  20859. effects − they appear as two letter box shaped screens one above the
  20860. other!!
  20861. 5.2
  20862. The adventures Jinxter and Corruption do not work with version 3.87 of
  20863. the SharedCLibrary which is in RISC-OS 3. However, they are supplied
  20864. with a very old version (1.01) which will work if you *RMKill the
  20865. version in RISC-OS 3 first. Better still, alter the !Run files to
  20866. automate this, and restore the RISC-OS 3 version afterwards. I have
  20867. included two suitable !Run files on the disc. On the monthly program
  20868. disc. Ed.)
  20869. 5.2
  20870. The disc sector editor in Beebug’s Toolbox (version 1.00) does not work
  20871. at all on the A5000, and hangs the machine!!
  20872. 5.2
  20873. FontFX from the Data Store (version 4.04) does not like the default
  20874. setting for the system macro Font$Path. However, if you edit out the
  20875. reference to Font$Prefix it works OK − not a perfect solution, but it
  20876. works. e.g.
  20877. 5.2
  20878. *SetMacro Font$Path adfs::IDEDis c4.$.!Fonts.,Resources:$.Fonts.
  20879. 5.2
  20880. DiscTree (version 2.16) from Mitre Software will load, but all attempts
  20881. to access a disc (hard or floppy) produce a fatal internal error.
  20882. 5.2
  20883. !DSEdit, the excellent PD sound sample player will not play samples.
  20884. This is because the author has been ‘naughty’ and used an abbreviation
  20885. for the ChannelVoice command. RISC-OS 3 wrongly interprets the abbrevia
  20886. tion as the new command *ChangeDynamicArea and hence causes an error.
  20887. This is easily corrected by changing the abbreviation to the full
  20888. command. Acorn have issued a warning with RISC-OS 3 that a number of
  20889. commands have different minimum abbreviations, and have provided a file
  20890. on the RISC-OS 3 Support Disc to change them all back to what they were
  20891. in RISC-OS 2.
  20892. 5.2
  20893. Something else that I have observed is that if you use the !Configure
  20894. application to auto-start any of the ROM based applications then this
  20895. will cease to work if you have a !Boot file on the hard disc which
  20896. includes a line like :
  20897. 5.2
  20898. *Desktop -file <Obey$Dir>.DeskS tart
  20899. 5.2
  20900. Instead you must include a line in the DeskStart file to run each of the
  20901. applications which you want to auto-start. e.g.
  20902. 5.2
  20903. Run Resources:$.Apps.!Alarm
  20904. 5.2
  20905. Hardware problems − (I have left this in to see if anyone has any ideas!
  20906. Ed.) I have discovered a fault with my machine, that concerns the real
  20907. time clock. Every time the machine is reset with either <ctrl-break>, or
  20908. turning it off and on again, the real time clock is reset back to the
  20909. last time that it was explicitly set too, e.g. using *Set Sys$Time or
  20910. the Set clock option on !alarm. The rest of the time, the clock appears
  20911. to function correctly.
  20912. 5.2
  20913. My first thought was a loose battery connection. However, on opening the
  20914. case, I found that the machine doesn’t even have a battery! While the
  20915. case was off, I checked for any loose connections, but could not find
  20916. any.
  20917. 5.2
  20918. Next, I thought that it might be a software fault and not a hardware
  20919. one, because the fault only occurs when the machine is reset, which is a
  20920. software function. I noticed that in the list of modules in RISC-OS 3
  20921. there is a new module called RTCAdjust which presumably stands for Real
  20922. Time Clock Adjust. Could this be causing the problem? The module
  20923. provides no star commands or software interrupts, only a service code
  20924. handler. I have not been able to confirm if this module is causing the
  20925. problem or not. Any ideas?  A
  20926. 5.2
  20927.  
  20928. The Engineer Speaks (again)
  20929. 5.2
  20930. Ray Maidstone
  20931. 5.2
  20932. As there were several comments of appreciation received regarding the
  20933. hardware care section labelled “The Engineer speaks” last month, further
  20934. points of interest have been forwarded and are listed here.
  20935. 5.2
  20936. Headphone sockets
  20937. 5.2
  20938. These stereo sockets are mechanically very delicate and several machines
  20939. have been in for repair. (This is presumably because these sockets are
  20940. getting used more now that there seems to be a little more notice being
  20941. taken of the fact that the Archimedes is capable of matching other makes
  20942. of computer, when it comes to music and sound effects.) The replacement
  20943. of these sockets is fairly simple but involves completely dismantling
  20944. your machine and getting the motherboard out.
  20945. 5.2
  20946. More serious is the fact that we’ve had some machines in for repair with
  20947. the sound output chip blown. Although this is a very cheap repair, I can
  20948. only think that this was caused by people using the socket whilst music
  20949. was actually playing! Looking at the circuit diagram, I find it
  20950. difficult to see how shorting the contacts in the socket by plugging in
  20951. headphones, or whatever, whilst it is playing should be able to blow
  20952. anything up, but there it is. I suggest it would be for sensible to
  20953. cause your machine to be silent while plugging things into this socket.
  20954. 5.2
  20955. RGB video output failure
  20956. 5.2
  20957. Further to the question “Does disconnection or connection to the RGB
  20958. socket while things are switched on blow the VIDC (Video Output) chip?”
  20959. The answer is most definitely yes, even though several people have
  20960. expressed surprise, saying “Well, I’ve plugged and unplugged mine for
  20961. years and years, and I’ve never had any problems.”
  20962. 5.2
  20963. The fact is that eventually it will blow up, as there simply isn’t any
  20964. static protection in the early machines. The modification I mentioned
  20965. last month has sparked a lot of interest. (Bad choice of words there,
  20966. Ray! Ed.) We can fit this for you and we can offer this item, fitted for
  20967. £15, but you will have to sort out the carriage.
  20968. 5.2
  20969. This protection feature is already incorporated into the 400/1 series,
  20970. the 3000 and everything since, and will only be needed in the 300 series
  20971. and the early 440’s. To my certain knowledge, this modification has put
  20972. an end to the grief being caused by pupils “in the know” at a couple of
  20973. schools, deliberately plugging and unplugging monitors and Arabellas
  20974. (that’s what VIDCs are called) are not cheap.
  20975. 5.2
  20976. A3000 crashes and aborts
  20977. 5.2
  20978. My findings on this subject are a bit distressing and, to make matters
  20979. worse, I own one of these troublesome machines and can speak from
  20980. experience. We have had a slowly increasing number of people losing work
  20981. because their 3000 occasionally crashes with the “Abort on transfer”, or
  20982. “Address exception” captions coming up. These problems have been traced
  20983. to impedance peculiarities on the pin and socket connections of the
  20984. expansion ram cards. At first, the ram expansion itself was suspected
  20985. but we have finally discovered that these connections sometimes go high
  20986. impedance at the high frequencies of the ram access speeds. The
  20987. “sometimes” is what’s giving the problem, as the bulk of these expan
  20988. sions run trouble free.
  20989. 5.2
  20990. My own belt and braces solution to this has been to remove the pins and
  20991. sockets, and replace them with gold plated counterparts − No more
  20992. problems! This, of course, is “open heart” surgery and, if not done by
  20993. an Acorn Service Centre, will invalidate any guarantee and, if it is not
  20994. performed using the correct equipment, it can destroy the machine as
  20995. well. (Solder suckers are completely incapable of performing this task
  20996. and the 4 layer board is too delicate to risk damaging.)
  20997. 5.2
  20998. I have helped several people out with a temporary DIY tip that consider
  20999. ably improves the reliability of these connections. However, you should
  21000. only attempt this if you are familiar with opening your machine and
  21001. fiddling inside it. Locate the ram board, lift it off the P.C.B.
  21002. expansion pins and lay the board to one side. Take a can of WD40, or
  21003. Contek 9, but nothing else, and find a clean bottle top or small dish.
  21004. Spray some of this into the cup and, using a cotton bud, carefully rub
  21005. around all the expansion pins, taking care not to distort any. Do not
  21006. spray anything directly into the machine.
  21007. 5.2
  21008. This should be done in a well lighted area and at the end, the pins
  21009. should be slightly moist (not too much and not too little!). Take the
  21010. ram card, and offer it onto the pins, checking that all pins align
  21011. properly into their relevant socket, and press it down. (Check that the
  21012. speaker wires do not get in the way.) Once the board has “bottomed”,
  21013. pull it back up again about ¼“ (6mm), and then ease it down until it
  21014. still about 1/32” (1mm) away from the bottom. Don’t push it all the way
  21015. down this time so that it leaves the connectors on “fresh” metal. This
  21016. procedure should temporarily relieve the crash situation but the
  21017. following test will reveal whether your problem is corrosive or
  21018. mechanical.
  21019. 5.2
  21020. Leaving the lid off, (beware of the high voltages in the power supply if
  21021. your machine has a cardboard p.s.u. cover) connect your machine up to
  21022. monitor and mains − no other connections are needed − and switch on. You
  21023. should now have the desktop visible on your monitor. If your expansion
  21024. is Atomwide then very slightly rocking it from front to back (Do not
  21025. exceed ¼“ movement) will not disturb the display if the fault was
  21026. corrosion. If the fault was mechanical, you will see the Address
  21027. Exception or Abort error flag, in which case the problem is mechanical
  21028. and you need to rush to your nearest Acorn Service Centre.
  21029. 5.2
  21030. If you have the Morley board, this is a little more difficult, as you
  21031. will have to carefully hinge up the keyboard and find a way of holding
  21032. it up (get someone to help you, as if you drop it you could short
  21033. something, or break the flexible connector strips) and now take hold of
  21034. the front edge of the board and raise and lower it about 3/8“ and watch
  21035. for the same effects as already mentioned.
  21036. 5.2
  21037. (This problem would probably have been averted if the pin and socket
  21038. components used at time of manufacture had been the gold flashed type,
  21039. but this obviously would have increased the product cost.)
  21040. 5.2
  21041. STOP PRESS
  21042. 5.2
  21043. After talking to another dealer at the recent Acorn User Show, I have
  21044. been able to find out from a couple of their personnel (unofficially)
  21045. that Acorn did indeed have a couple of batches of A3000’s that came with
  21046. oxidized expansion pins. So I suggest that either you offer your machine
  21047. to your dealer for him to sort out, or heed the above instructions, and
  21048. also try a light rub with a very small piece of “Scotchbrite” or pan
  21049. scourer. Do not use anything metallic because that will leave a
  21050. residue.  A
  21051. 5.2
  21052.  
  21053. Hints and Tips
  21054. 5.3
  21055. •   AMX mouse − To replace the Archimedes mouse with an AMX mouse from a
  21056. BBC computer, all that is necessary is to change the plug on the AMX
  21057. mouse for a miniature 9 pin DIN plug. The correct plug can be obtained
  21058. from Maplin Electronics (0702−554161). It is stock number JX19V (price
  21059. 82p +p&p). Cut the original 20 way IDC connector off the mouse cable and
  21060. then solder the wires onto the new plug. The pins are very close
  21061. together, so a fair amount of care is required. It is easiest to start
  21062. with the middle pins and work outwards. I found that the plastic housing
  21063. supplied with the plug was just too wide to fit into my A3000 but it can
  21064. easily be cut smaller with a sharp knife.
  21065. 5.3
  21066. Paul Marshall, Loughborough.
  21067. 5.3
  21068. (Has anyone got the connections to do the same sort of thing but with a
  21069. BBC Trackerball? Ed)
  21070. 5.3
  21071. •   Cops and Plague Planet − I should like to pass on the following advice
  21072. received from Alpine.
  21073. 5.3
  21074. Both Cops and Plague Planet re-configure the character set used to their
  21075. own. If you have a copy of Alpine Software’s ALPS (Adventure Language
  21076. Programming System) this contains a copy of the default Archimedes
  21077. character set e.g. $.!ALPS. Resources.defaultchr.
  21078. 5.3
  21079. Copy this file to the appropriate games directory (e.g.
  21080. $.COPS.defaultchr), and add the following line at the very end of the
  21081. appropriate !Run file (e.g. for Cops):
  21082. 5.3
  21083. Print <Cops$Dir>.defaultchr
  21084. 5.3
  21085. This will then automatically reset the computer to the default system
  21086. font upon returning to the Desktop.      Rob Brown, Tadworth
  21087. 5.3
  21088. •   Corruption and Jinxter − I have recently transferred a number of the
  21089. earlier Magnetic Scrolls adventure games from floppy to hard disc and
  21090. have encountered certain problems with their usage of the Shared C
  21091. Library !System module.
  21092. 5.3
  21093. Fish! does not use the Shared C Library at all. Both The Guild of
  21094. Thieves and The Pawn came with version 3.50 of the Shared C Library and
  21095. they function with more recent versions without any difficulty. However,
  21096. my copies of Corruption (version 1.12) and Jinxter (version 1.30) came
  21097. with version 1.01 of the Shared C Library and they will not function at
  21098. all with any of the more recent versions.
  21099. 5.3
  21100. What I wanted to achieve was an easy means of starting either program
  21101. straight from the Desktop and automatically loading the “old” version of
  21102. the Shared C Library. After some trial and error I have found one way
  21103. round this by modifying the !Run files for both applications.
  21104. 5.3
  21105. Firstly, version 1.01 of the Shared C Library needs to be copied to a
  21106. suitable directory within the !System application on the hard disc (e.g.
  21107. $.!System.oldModules.CLib_v101).
  21108. 5.3
  21109. Unfortunately the command RMEnsure will not only check for a particular
  21110. version of a module but it will also accept more recent versions. In the
  21111. !Run file I have therefore used this command to check whether a
  21112. subsequent version (e.g. 1.02) of the Shared C Library is already loaded
  21113. and, if not, the most up to date version is loaded from the !System
  21114. application. The command RMKill is then used to delete this module
  21115. before loading the “old” version 1.01 of the Shared C Library. Finally,
  21116. after exiting the program, the “old” Shared C Library is deleted, the
  21117. latest version (currently 3.75) is re-loaded, and the !Run file finally
  21118. returns control direct to the Desktop.
  21119. 5.3
  21120. | !Run file for Corruption
  21121. 5.3
  21122. | (or Jinxter − change references from “Corruption” to “Jinxter”)
  21123. 5.3
  21124. | (requires Shared C library version 1.01 dated 13-Jun-88)
  21125. 5.3
  21126. |
  21127. 5.3
  21128. IconSprites <Obey$Dir>.!Sprites
  21129. 5.3
  21130. WimpSlot -min 512K -max 512K
  21131. 5.3
  21132. |
  21133. 5.3
  21134. Set Corruption$CLibLoaded 1
  21135. 5.3
  21136. RMEnsure SharedCLibrary 1.02 Set Corruption$CLibLoaded 0
  21137. 5.3
  21138. If Corruption$CLibLoaded=0 then If “<System$Path>” = “” then Error
  21139. System resources cannot be found
  21140. 5.3
  21141. If Corruption$CLibLoaded=0 then RMLoad System:Modules.Clib
  21142. 5.3
  21143. RMKill SharedCLibrary
  21144. 5.3
  21145. RMLoad System:oldModules.CLib_v101 .Clib
  21146. 5.3
  21147. RMEnsure SharedCLibrary 1.01 Error You need SharedCLibrary
  21148. 5.3
  21149. version 1.01 ONLY
  21150. 5.3
  21151. Unset Corruption$CLibLoaded
  21152. 5.3
  21153. |
  21154. 5.3
  21155. Set Corruption$Dir <Obey$Dir>
  21156. 5.3
  21157. Run <Corruption$Dir>.Corruption.f1 <Corruption$Dir>.Corruption.f2
  21158. 5.3
  21159. |
  21160. 5.3
  21161. |
  21162. 5.3
  21163. RMKill SharedCLibrary
  21164. 5.3
  21165. RMEnsure SharedCLibrary 3.75 RMLoad System:Modules.Clib
  21166. 5.3
  21167. RMEnsure SharedCLibrary 3.75 Error You need SharedCLibrary
  21168. 5.3
  21169. version 3.75 or later
  21170. 5.3
  21171. Desktop
  21172. 5.3
  21173. WARNING − any other programs active within the Desktop should be closed
  21174. down and any files saved before starting either Corruption or Jinxter −
  21175. especially those programs which use the Shared C Library! Perhaps
  21176. another reader can find a way round this?
  21177. 5.3
  21178. Rob Brown, Tadworth
  21179. 5.3
  21180. •   Elite − When you start Archimedes Elite, it prompts you to enter a
  21181. word from the manual, as an anti-piracy precaution. When it says “type
  21182. the word exactly as shown” it means the input is case sensitive. You
  21183. have to remember to take the Caps Lock off. This falls into the category
  21184. of “obvious to most people” but hopefully this hint will save somebody
  21185. the frustrating quarter of an hour which I spent trying to get the thing
  21186. to work when it first arrived.
  21187. 5.3
  21188. People who are used to the 8 bit version of the game should watch out
  21189. for little things which have changed. For example, furs are now illicit
  21190. cargo in the same way that narcotics and firearms are. You are told this
  21191. in the manual but you have to look for it pretty carefully!
  21192. 5.3
  21193. Neil Hoggarth, Winchester  A
  21194. 5.3
  21195.  
  21196. 5.3
  21197. Impression Hints & Tips
  21198. 5.3
  21199. •   Position holding − My repeated plea for a way of holding the current
  21200. position in a document when you expand and contract the window has been
  21201. answered! A box of four Archive mugs is winging its way to Bob Potter of
  21202. Bath. He gave me the basic idea which I have amplified slightly.
  21203. 5.3
  21204. Basically, as Bob pointed out, when you expand and contract the window,
  21205. Impression returns to the position that was current when the window was
  21206. small. (Surely, CC, this isn’t very sensible, is it? You are more likely
  21207. to change the current position when working in the full size window. Why
  21208. not change it whenever you move about within the document?) Anyway,
  21209. given that this is how it works at present, all you have to do to
  21210. maintain your position is, as soon as you have shrunk the window, press
  21211. <cursor-left> (and then <cursor-right> if you want to) so that the
  21212. current position will be displayed and remembered within the small
  21213. window. The only slight disadvantage with this is that if the small
  21214. window is very small, you will find the cursor near to the top of the
  21215. window when you expand it, not near the middle. Thanks, Bob!  A
  21216. 5.3
  21217.  
  21218.  
  21219. The Engineer Speaks
  21220. 5.3
  21221. Ray Maidstone
  21222. 5.3
  21223. •   Hard drive mounts − Several customers have had cause to ship their
  21224. Archimedi to me for repair, and a hardware problem has come to light.
  21225. Some of you have purchased hard drives that have been mounted on thin
  21226. aluminium brackets. These rather flimsy brackets easily distort under
  21227. small amounts of G stress and, unfortunately, a few harddrives have gone
  21228. to the great hard disc graveyard in the sky. Aluminium was used by the
  21229. Airforce because of its tensile properties, and should (due to this very
  21230. fact) not be used to anchor a hard drive. These small brackets deform
  21231. under stress and leave the drive “flapping” about.
  21232. 5.3
  21233. Another comment about brackets − a lot of them are fine for their
  21234. supporting properties but not very good when it comes to air circula
  21235. tion. This can be improved by either punching some 3/8“ holes in the
  21236. sides, or by buying a pair of Paul’s new nifty side brackets at £4 a
  21237. pair. We have had a few instances of over-heating causing premature
  21238. decease of drives, particularly with back planes full of podules and a
  21239. partly blocked filter. It is possible that, by reducing the bracket
  21240. size, this could have been avoided.
  21241. 5.3
  21242. •   *Shut and *bye − The last word! I have not, at any time in my
  21243. comments, stated that the suggestions I have made are law, I have merely
  21244. offered the result of my findings to those who hadn’t a clue of what was
  21245. going on. There are a few small, old drives that need both, but most
  21246. only need one command to park. The removables, however, most certainly
  21247. do not park, and only the operating lever finally parks the heads. These
  21248. findings came about from observations of partially dismantled units
  21249. operating under standard command use.
  21250. 5.3
  21251. •   LBP4 laser printers − I have been asked about switch on/off procedures
  21252. for these, and I reckon that, to minimise “spikes”, the order should
  21253. be... when switching on, either do so all together or the printer last,
  21254. and turning off, either do it all altogether or switch off the printer
  21255. first.
  21256. 5.3
  21257. •   Cooling − Following the success of quietening the fans on Archimedes,
  21258. external hard drives have now been added to the list, and no heat
  21259. problems have arisen (mainly because of 14 months of actual proving
  21260. before releasing). Whilst assessing the quietening for these drives, it
  21261. was surprising to find just how mechanically noisy some makes of fan
  21262. were, as nearly 50% of the noise from the unit was being conducted
  21263. through the chassis assembly.
  21264. 5.3
  21265. I have also been asked “If I don’t like Acorn’s cooling method, what
  21266. would I like instead?” My reply is that, in my opinion, the current fan
  21267. with or without a quietener (that never lets the fan speed drop below
  21268. 75%) is not quite enough in the real world. Particularly if the filter
  21269. is on the inside, hardly anyone appears to pay much attention to keeping
  21270. the filter clean. Therefore, I have found a rather nice miniature fan
  21271. (currently being used by Morley in their external hard drives) that,
  21272. when introduced into the opposite side of the case to the present
  21273. arrangement, and being set to push air out of the case as the other
  21274. sucks it in, really gets some cooling done.
  21275. 5.3
  21276. A cautionary note about airflow is not to stand external floppy and hard
  21277. drive units too close to the sides of the Archimedes, or soft surfaces
  21278. under the A3000, as “what goes in must come out” and I have seen several
  21279. instances of hot machines being caused by the proximity of external
  21280. surfaces. The A3000 has a power supply that runs quite hot and, being
  21281. encased in fireproof cardboard, (on the earlier machines, anyway) made
  21282. things even more heated. I am using the miniature fan, aimed at the end
  21283. of the P.S.U., to assist temperature differences in this rather enclosed
  21284. environment. If anyone is interested in more details, let me know. This
  21285. small fan gives off very little sound and certainly improves longevity.
  21286. The lack of space inside the A3000 generally adds to the poor cooling in
  21287. the P.S.U. and any air movement is better than none.
  21288. 5.3
  21289. I made the comment above about fan quieteners not slowing the fan more
  21290. than 75% because, in the course of my development, I also tried systems
  21291. that reduced the fan speed to 40%, and also did one trial where I
  21292. stopped it all together for the first quarter hour, as no heat would
  21293. build up until after this. The fan would then thermostatically cut in
  21294. and then run in a varied way subject to temperature requirements. These
  21295. were all dropped due to the fact that, as the Archimedes box is not at
  21296. all aerodynamic, once the temperature began to build up, certain items
  21297. within it started to experience particularly large temperature rises
  21298. i.e. hard drive, P.S.U. and floppy drive. The final unit chosen simply
  21299. took the fan below the noise of air flare speed and, together with the
  21300. chassis decoupling grommets, removed so much noise that only the sound
  21301. of the hard drive rang in the ears. I would caution people against using
  21302. controllers that slow the fan excessively.
  21303. 5.3
  21304. •   IDE cabling − I notice that IDE drive cables have been quoted as long
  21305. as 20“. I have it on very good authority that in some cases, even 12” is
  21306. pushing it. This is because IDE signals tend to be far more easily
  21307. corrupted than those on SCSI lines. So please be warned and keep them as
  21308. short as possible.  A
  21309. 5.3
  21310.  
  21311. Hints and Tips
  21312. 5.4
  21313. •   A5000 monitor problem − One problem which various people seem to have
  21314. had with the Acorn A5000 monitors is intermittent contact on the mains
  21315. cable but the solution is simple. When you plug the power cable into the
  21316. monitor, it seems to go in but actually, to get it fully home, you have
  21317. to push it very firmly.
  21318. 5.4
  21319. •   Draw files in Impression − Did you know that when using Draw files in
  21320. Impression frames, it is possible to “zoom” in on a part you want to
  21321. concentrate on and bring it up to “fill the frame”? This means you can,
  21322. for example, call up a file of, say, a fruit filled bowl and then choose
  21323. the apple to fill the space available in your document or show a group
  21324. of cartoon figures and, in the next frame, have a “close up” of one
  21325. face. Since Draw files are capable of incredible scaling, their should
  21326. be no real loss of detail involved.
  21327. 5.4
  21328. The procedure is simple. Create a frame for the draw file. Open the
  21329. directory containing the Draw file. Drag it into the frame in the usual
  21330. way. Changing the shape of the frame with its handles using <select>
  21331. will “crop” the picture until only the part you require is visible. Then
  21332. enlarge the frame using the adjust button on the corner handles. The
  21333. cropped picture will “grow” with your mouse movements. (Well, stone me!
  21334. I didn’t know that! Please keep sending these “obvious” hints − they are
  21335. not obvious to everyone. Ed.)
  21336. 5.4
  21337. Incidentally, don’t try moving a frame containing a Draw file around the
  21338. page using the usual method of pointing inside it, holding down <select>
  21339. and waiting for the blue lines to appear. If you don’t wait quite long
  21340. enough, the graphic moves inside the frame and bang goes your careful
  21341. alignment! Instead, hold down <ctrl> when you press <select> and the
  21342. frame can be moved safely and immediately. Kevin Beales, Shropshire.
  21343. (The latter hint was also sent in by Johannes Thordarson of  Ice
  21344. land.)  A
  21345. 5.4
  21346.  
  21347. Hints and Tips
  21348. 5.5
  21349. •   A5000 PC delete danger – I found out the hard way that deleting the PC
  21350. directory (and probably Drive_C as well) gives a disc error over the
  21351. area of the deleted partition. The only solution is to reformat the hard
  21352. disc and restore the last backup. J.R.McLachlan, Hertford.
  21353. 5.5
  21354. Yes, there does appear to be a problem here. The same thing happened to
  21355. us. In theory, the idea is that Drive_C is a filetype that is not
  21356. deleteable. The trouble is that on the A5000, it seems to get confused
  21357. and half delete it, leaving a blank entry in the file table (seen as a
  21358. blank line in the filer window if you use “full info”). The answer is to
  21359. change the filetype to, say, FFF with
  21360. 5.5
  21361. *SETTYPE $.<pathname>.Drive_C FFF
  21362. 5.5
  21363. before you try to delete it. Ed.
  21364. 5.5
  21365. •   BBC Tracker Ball − In December’s Archive, Paul asked for a wiring
  21366. diagram to convert a BBC tracker ball to an Archimedes one. I have
  21367. converted an old Marconi tracker ball for use on the Archimedes using
  21368. the following diagram.
  21369. 5.5
  21370. The nine wires come out of the bottom of the tracker ball socket as I
  21371. have drawn it. Socket 1 is marked, or it is on mine.
  21372. 5.5
  21373. The connections are as follows...
  21374. 5.5
  21375.    9-pin   Trackerball
  21376. 5.5
  21377.    mini DIN   Socket
  21378. 5.5
  21379.    1   3   yellow
  21380. 5.5
  21381.    2   6   black
  21382. 5.5
  21383.    3   7   brown
  21384. 5.5
  21385.    4   9   grey
  21386. 5.5
  21387.    5   2   orange
  21388. 5.5
  21389.    6   1   red
  21390. 5.5
  21391.    7   4   green
  21392. 5.5
  21393.    8   8   white
  21394. 5.5
  21395.    9   5   blue
  21396. 5.5
  21397. The colours are the colours on mine. They may differ between various
  21398. tracker balls. A mark 1 Archimedes mouse lead will also fit this
  21399. particular tracker ball but two leads need swapping round.
  21400. 5.5
  21401. Connectors 6 and 7, in my case red and brown, need to be changed over.
  21402. This can be accomplished with a needle by gently lifting the black
  21403. plastic clip above the connector with the needle whilst pulling gently
  21404. on the wire to be removed.
  21405. 5.5
  21406. December’s article was, I think, for a mark 1 AMX mouse. I have a later
  21407. AMX mouse which is the same design as the early Archimedes mouse and the
  21408. lead is a straight swap.
  21409. 5.5
  21410. Dave Morrell, Middlesbrough
  21411. 5.5
  21412. •   Elite Cheat − Here is program that will create a commander file for
  21413. use with Elite. It gives you the most needed items to get around a
  21414. little better than before, especially the docking computer, (most
  21415. welcome). When you have successfully loaded it in, use galaxy map to see
  21416. where to go, a little bonus is waiting: Front beam laser, rear beam
  21417. laser, large cargo bay (35 tons), docking computer, E.C.M. system, four
  21418. missiles.
  21419. 5.5
  21420. REM>:0.$.Elite_com
  21421. 5.5
  21422. REM Program by Scott Edwards
  21423. 5.5
  21424. REM 3-1-92
  21425. 5.5
  21426. REM It is important that you have
  21427. 5.5
  21428. REM the correct checksums on the
  21429. 5.5
  21430. REM right line, the program will
  21431. 5.5
  21432. REM inform you if you have a wrong line.
  21433. 5.5
  21434. MODE0:OFF
  21435. 5.5
  21436. DIM store% &1000
  21437. 5.5
  21438. checkcode%=38901:code$=“”
  21439. 5.5
  21440. line%=390:inc%=0
  21441. 5.5
  21442. FOR l%=0 TO 17
  21443. 5.5
  21444. FOR blk%=0 TO 15
  21445. 5.5
  21446. READ code$
  21447. 5.5
  21448. dat%=EVAL(“&”+code$)
  21449. 5.5
  21450. checksum%=checksum%+dat%
  21451. 5.5
  21452. ?(store%+inc%)=dat%
  21453. 5.5
  21454. PRINT dat%,~dat%
  21455. 5.5
  21456. inc%+=1
  21457. 5.5
  21458. NEXT
  21459. 5.5
  21460. READ checkcode%
  21461. 5.5
  21462. IF checksum%<>checkcode% THEN
  21463. 5.5
  21464. PRINT “You have a data byte incorrect at ”;line%
  21465. 5.5
  21466. STOP
  21467. 5.5
  21468. ENDIF
  21469. 5.5
  21470. line%+=10:finalcheck%=checksum%
  21471. 5.5
  21472. checksum%=0
  21473. 5.5
  21474. NEXT
  21475. 5.5
  21476. IF finalcheck%=checkcode% THEN
  21477. 5.5
  21478. PRINT“You have a correct file for saving”
  21479. 5.5
  21480. REPEAT
  21481. 5.5
  21482. INPUT“Enter the commander name for your file  ”;A$
  21483. 5.5
  21484. UNTIL A$<>“”
  21485. 5.5
  21486. SYS“OS_File”,10,A$,&C87,,store%, store%+&11C
  21487. 5.5
  21488. ENDIF
  21489. 5.5
  21490. PRINT“Program is Finished,now run ELITE and use your new commander”
  21491. 5.5
  21492. END
  21493. 5.5
  21494. :
  21495. 5.5
  21496. REM Commander file for ELITE
  21497. 5.5
  21498. :
  21499. 5.5
  21500. DATA 16,B5,DC,72,DF,DD,20,C9,F2,3C, 54, EB,32,6F,EF,09,2244
  21501. 5.5
  21502. DATA E5,F9,61,E3,31,12,B8,70,85,F3, FE,A9,EB,11,02,DD,2439
  21503. 5.5
  21504. DATA 31,43,F2,80,D5,F6,81,FA,70,92, 9A, 72,B9,EB,FC,B9,2707
  21505. 5.5
  21506. DATA C9,B1,42,CE,85,DD,F6,7F,5D,00, D2,9A,92,D2,6F,FC,2553
  21507. 5.5
  21508. DATA B9,2F,F9,62,CF,B5,62,B8,7B,5E, 98,7E,AF,68,DC,AA,2413
  21509. 5.5
  21510. DATA DD,39,30,CD,40,D6,B5,EF,53,70, 9E,91,E9,99,EC,DB,2568
  21511. 5.5
  21512. DATA F1,2C,B1,50,C1,F5,4D,F7,EE,72, 97,52,A1,59,FC,A7,2558
  21513. 5.5
  21514. DATA FD,78,B2,CD,22,CA,AD,FF,54,7F, 3D,52,67,0A,66,D7,2204
  21515. 5.5
  21516. DATA F8,23,39,20,A2,B4,86,B4,6C,7D, 0B,1D,09,4A,D3,44,1663
  21517. 5.5
  21518. DATA D3,37,3F,07,0F,06,A6,63,23,E3, 1D,18,84,80,84,D4,1541
  21519. 5.5
  21520. DATA AA,8A,6B,10,8D,3B,39,43,EB,56, C6,B6,81,48,9F,1E,1846
  21521. 5.5
  21522. DATA 9A,77,2C,64,DC,BA,A5,49,10,CE, BD,17,33,EF,5E,D4,2091
  21523. 5.5
  21524. DATA A5,01,E8,E0,8D,12,71,30,6B,53, F9,F5,E9,47,02,B2,2110
  21525. 5.5
  21526. DATA 91,37,22,7D,F1,F6,A4,7A,DC,C2, 9C,8A,B5,FE,7C,CB,2602
  21527. 5.5
  21528. DATA 38,E2,DA,CF,49,E0,80,BF,CF,20, 6A,6E,E7,24,69,39,2207
  21529. 5.5
  21530. DATA 7E,74,89,36,A6,69,0B,36,B7,A9, 33,46,99,DD,35,07,1676
  21531. 5.5
  21532. DATA 34,D0,D6,93,1D,CF,F0,9B,03,0F, 61,EC,D6,13,E8,71,2181
  21533. 5.5
  21534. DATA 48,83,01,29,F7,5A,82,75,32,A8, BA,41,00,00,00,00,1298
  21535. 5.5
  21536. S Edwards, Stourbridge
  21537. 5.5
  21538. •   First Word Plus 2 − In Archive 3.12 someone was bemoaning the lack of
  21539. a key that would toggle insert mode on and off. In fact the <insert> key
  21540. itself will do just that.
  21541. 5.5
  21542. Robert Fuller, Basingstoke.
  21543. 5.5
  21544. •   Lemmings Passwords − For all you bald headed insomniacs....
  21545. 5.5
  21546. Taxing Level    
  21547. 5.5
  21548. 02 Justforyou   03 Runandflee   04
  21549. Doortodoor
  21550. 5.5
  21551. 05 Stillalive   06 Fixedmyfix   07
  21552. Anurebevan
  21553. 5.5
  21554. 08 Helpmemate   09 Drinknwine   10
  21555. Tenpercent
  21556. 5.5
  21557. 11 Stickuptwo   12 DiginDelve    13
  21558. Hisbadluck
  21559. 5.5
  21560. 14 Teensforth   15 Teensfifth   16
  21561. Notsosweet
  21562. 5.5
  21563. 17 Driveukcar   18 Votesforme   19
  21564. Tenstonine
  21565. 5.5
  21566. 20 Doublesten   21 Lockandkey   22
  21567. Twoelevens
  21568. 5.5
  21569. 23 Justforme   24 Lemmingmore   25
  21570. Jiveanjive
  21571. 5.5
  21572. 26 Lemsinafix   27 Lemsheavon   28
  21573. Gardengate
  21574. 5.5
  21575. 29 Startowine   30 Fivexsixis
  21576. 5.5
  21577. Mayhem Level    
  21578. 5.5
  21579. 02 Nearlygone   03 Spendspree   04
  21580. Onthefloor
  21581. 5.5
  21582. 05 Uncleclive   06 Clogclicks   07
  21583. Difference
  21584. 5.5
  21585. 08 Waitanwait   09 Eatanddine   10
  21586. Tentontess
  21587. 5.5
  21588. 11 Binisthree   12 Twotimesix   13
  21589. Returntome
  21590. 5.5
  21591. 14 Twicelucky   15 Nineandsix   16
  21592. Charitynum
  21593. 5.5
  21594. 17 Stillyoung   18 Comesofage   19
  21595. Olderstill
  21596. 5.5
  21597. 20 Numbtwenty   21 Olderlemms   22
  21598. Lemminduck
  21599. 5.5
  21600. 23 Soonbefree   24 Lemmsstore   25
  21601. Lemmsdrive
  21602. 5.5
  21603. 26 Yourinafix   27 Lemtodevon   28Twostoplay
  21604. 5.5
  21605. 29 Oneafterme   30 Lemmgfinal
  21606. 5.5
  21607. Robin Jefferies,  West Sussex.
  21608. 5.5
  21609. •   Improving Logistix (v0.01) RISC-OS compatibility − As anyone who has a
  21610. copy of Logistix will be aware, the RISC-OS support files to “upgrade”
  21611. the package to run from the desktop do nothing except allow the
  21612. application to be launched from the desktop! (I do not know if there was
  21613. ever a subsequent release of Logistix since v0.01 − I assume not, as I
  21614. was a registered owner and was never informed of any update.)
  21615. 5.5
  21616. In the case of old programs upgraded through the support disk, it’s
  21617. likely that some of the software houses did not have any real experience
  21618. of RISC-OS before the deadline date for the disk, so they may be excused
  21619. for the minimal level of compliance. (Acorn could not be considered to
  21620. have had any such excuse, but Logistix wasn’t actually written by them,
  21621. they only marketed it for Grafox.)
  21622. 5.5
  21623. The directory structure of the “upgraded” !Logistix was rather messy,
  21624. and all pathnames were specific to the directory structure, therefore
  21625. not transportable from drive 0 and the $ directory. This makes it
  21626. impossible to install on a hard disk without some editing. The major
  21627. annoyance in using the application is that clicking on Logistix data
  21628. files does nothing except give an error message! Files can only be
  21629. loaded by first loading Logistix, then keyboarding through the menu
  21630. system.
  21631. 5.5
  21632. The application directory can be arranged far better for RISC-OS by the
  21633. movement of a few files, and a little editing with !Edit. Dealing with
  21634. the directory structure first...
  21635. 5.5
  21636. All that the user wants to see of Logistix is the !Logistix application
  21637. icon which can be double clicked on to start it. Your !System directory
  21638. should contain a directory called Modules which contains the latest
  21639. version of the FPE, Clib, Colours etc. As upgraded after using the
  21640. support disk, a Logistix floppy disk contains the following directories:
  21641. 5.5
  21642. !System − A system folder which still requires updating with the RISC-OS
  21643. extras disk for the newer versions of Clib etc. (The latest Floating
  21644. Point Emulator (2.80) should also be placed in the Modules directory
  21645. inside this.)
  21646. 5.5
  21647. !Logistix − The RISC-OS startup directory containing the !Boot,!Run and
  21648. !Sprites files.
  21649. 5.5
  21650. Logistix − The actual Logistix program files and a (now outdated)
  21651. Floating Point Emulator.
  21652. 5.5
  21653. MAKE A BACKUP COPY OF YOUR DISK then, using the backup copy...
  21654. 5.5
  21655. Move the Logistix directory into the !Logistix directory.
  21656. 5.5
  21657. Copy the latest FPEmulator you have into the !System.Modules directory.
  21658. 5.5
  21659. (You may then delete the copy in the Logistix directory.)
  21660. 5.5
  21661. Using !Edit, edit the !Logistix.!Boot file to contain the following
  21662. lines:
  21663. 5.5
  21664. | !Boot for !Logistix version 0.01
  21665. 5.5
  21666. | Updated to allow autoload
  21667. 5.5
  21668. | (This is an OBEY file)
  21669. 5.5
  21670. Set Logi$Dir <Obey$Dir>
  21671. 5.5
  21672. IconSprites <Logi$Dir>.!Sprites
  21673. 5.5
  21674. Set File$Type_DFF Logistix
  21675. 5.5
  21676. Set Alias$@RunType_DFF Obey <Logi$Dir>.InitFile %%*0
  21677. 5.5
  21678. Edit the !Run file so that it becomes:
  21679. 5.5
  21680. | !Run for !Logistix version 0.01
  21681. 5.5
  21682. | with better RISC-OS compatability
  21683. 5.5
  21684. | (This is an OBEY file)
  21685. 5.5
  21686. IconSprites <Logi$Dir>.!Sprites
  21687. 5.5
  21688. WimpSlot -min 500k
  21689. 5.5
  21690. RMEnsure FPEmulator RMLoad <System$Path>Modules.FPEmulator
  21691. 5.5
  21692. Dir <Logi$Dir>.Logistix
  21693. 5.5
  21694. LGX
  21695. 5.5
  21696. The use of “<System$Path>Modules.” to reach the FPEmulator and setting
  21697. up the system variable <Logi$Dir> allow proper transportability of the
  21698. application, and it can now quite happily be installed anywhere in the
  21699. directory structure on a hard disk. Clicking on a data file causes RISC-
  21700. OS to check if a command has been matched to that file type. The system
  21701. variable Alias$@RunType _xxx has to be set up for files of the type in
  21702. question. If it has not been set up then you will get the error message
  21703. “No run action specified for this file type”. This is exactly what
  21704. happens with Logistix and similar applications written before (and even
  21705. since!) RISC-OS made its appearance. The addition of the line Set
  21706. Alias$@RunType_ DFF Obey <Logi$Dir>.InitFile %%*0 in the !Boot file
  21707. corrects the original omission, along with the following Obey file.
  21708. 5.5
  21709. The file described here can be used with most applications which require
  21710. keyboard input to load files, the exceptions being those which clear the
  21711. keyboard buffer on start up. In principle, the method is simple. An Exec
  21712. file is used containing the commands or keystrokes to be executed as
  21713. though they had been entered at the keyboard. Due to the fact that only
  21714. Obey files can process the Obey$Dir system variable, it could get a
  21715. little bit confusing.
  21716. 5.5
  21717. One way around this is from an Obey file:
  21718. 5.5
  21719. 1. Collect the startup pathname from RISC-OS and put it in a system
  21720. variable.
  21721. 5.5
  21722. 2. Using an Obey file, create an Exec file (by using Spool and Echo)
  21723. containing all the commands which require to be carried out to start the
  21724. application and set it up for a load operation.
  21725. 5.5
  21726. 3. Echo the system variable containing the full pathname into the Exec
  21727. file.
  21728. 5.5
  21729. 4. Exec the file which has just been created.
  21730. 5.5
  21731. There is one small problem. When trying to write to the FIRST file being
  21732. created by a *Spool operation, extraneous data flows into it before the
  21733. data! A dummy file is spooled first to get rid of this before the real
  21734. file is created.
  21735. 5.5
  21736. Using !Edit, create a new Obey file as follows, (You may miss out the
  21737. comment lines, but please leave in the fact that it is public domain and
  21738. attributed to me.)
  21739. 5.5
  21740. | “InitFile” − Public Domain by
  21741. 5.5
  21742. | D.Potter 26/6/90
  21743. 5.5
  21744. | Allows keyboard emulated loading
  21745. 5.5
  21746. | by double-clicking on a data file
  21747. 5.5
  21748. | in the RISC-OS desktop.
  21749. 5.5
  21750. | Intended in this version for
  21751. 5.5
  21752. | Logistix, but the principal will
  21753. 5.5
  21754. | work for other programs which do
  21755. 5.5
  21756. | not clear the keyboard buffer at
  21757. 5.5
  21758. | startup.
  21759. 5.5
  21760. | This is an Obey File. (Exec files
  21761. 5.5
  21762. | do not allow passing of system
  21763. 5.5
  21764. | parameters.) To pass actual
  21765. 5.5
  21766. | commands to Logistix, (or any
  21767. 5.5
  21768. | similar application), an Exec file
  21769. 5.5
  21770. | must be used.
  21771. 5.5
  21772. | The Exec file is built by this
  21773. 5.5
  21774. | file, including the full path for
  21775. 5.5
  21776. | the startup file that was clicked
  21777. 5.5
  21778. | on.
  21779. 5.5
  21780. | The !Boot file for app. must be an
  21781. 5.5
  21782. | Obey file containing the commands
  21783. 5.5
  21784. |      Set Logi$Dir <Obey$Dir>
  21785. 5.5
  21786. |      Set Alias$@RunType_xxx Obey <Logi$Dir>.InitFile %%*0
  21787. 5.5
  21788. | (As well as any other commands
  21789. 5.5
  21790. | already there)
  21791. 5.5
  21792. | Where xxx is the filetype for the
  21793. 5.5
  21794. | data file (DFF for Logistix).
  21795. 5.5
  21796. | Logi$Dir will be the directory
  21797. 5.5
  21798. | where the application resides, and
  21799. 5.5
  21800. | is automatically set up when the
  21801. 5.5
  21802. | application’s !Boot is first seen.
  21803. 5.5
  21804. | Note : the | characters at the
  21805. 5.5
  21806. | start of the above lines should
  21807. 5.5
  21808. | NOT be in the !Boot file!
  21809. 5.5
  21810. |
  21811. 5.5
  21812. | Put the pathname information in
  21813. 5.5
  21814. | temporary system variable Lload$
  21815. 5.5
  21816. Set Lload$ %*0
  21817. 5.5
  21818. | Clear extraneous data which
  21819. 5.5
  21820. | appears when a file is written to
  21821. 5.5
  21822. | at this stage by dummy spooling.
  21823. 5.5
  21824. | This data is not needed here any
  21825. 5.5
  21826. | more!
  21827. 5.5
  21828. Spool <Logi$Dir>.!LoadFile
  21829. 5.5
  21830. Echo <Lload$>
  21831. 5.5
  21832. spool
  21833. 5.5
  21834. | Now create the actual Exec file
  21835. 5.5
  21836. | which will run LGX and issue the
  21837. 5.5
  21838. | commands.
  21839. 5.5
  21840. Spool <Logi$Dir>.!LoadFile
  21841. 5.5
  21842. Echo || !LoadFile − Transient program built by InitFile
  21843. 5.5
  21844.  (PD) by D.Potter 1990
  21845. 5.5
  21846. Echo *Run <Logi$Dir>.!Run
  21847. 5.5
  21848. |
  21849. 5.5
  21850. | Send the Logistix load sequence −
  21851. 5.5
  21852. | Note : NO SPACES in the sequence!
  21853. 5.5
  21854. | /L = load, L= Logistix data file,
  21855. 5.5
  21856. | <Lload$>= Full filename,
  21857. 5.5
  21858. | A= All to be loaded  (You might
  21859. 5.5
  21860. | want to use a different load
  21861. 5.5
  21862. | sequence)
  21863. 5.5
  21864. | (Where a return is required such
  21865. 5.5
  21866. | as after the filename here,
  21867. 5.5
  21868. | simply start a new Echo statement
  21869. 5.5
  21870. | for the next command.)
  21871. 5.5
  21872. |
  21873. 5.5
  21874. Echo /LL<Lload$>
  21875. 5.5
  21876. Echo A
  21877. 5.5
  21878. |
  21879. 5.5
  21880. | Close the file
  21881. 5.5
  21882. Spool
  21883. 5.5
  21884. |
  21885. 5.5
  21886. | Set its file type
  21887. 5.5
  21888. SetType <Logi$Dir>.!LoadFile Command
  21889. 5.5
  21890. |
  21891. 5.5
  21892. | Lose the temporary system variable
  21893. 5.5
  21894. UnSet Lload$
  21895. 5.5
  21896. |
  21897. 5.5
  21898. | And run the file just created!
  21899. 5.5
  21900. Exec <Logi$Dir>.!LoadFile
  21901. 5.5
  21902. Save the above file as InitFile in the !Logistix directory.
  21903. 5.5
  21904. Now click on the !Boot file in the !Logistix directory to set the system
  21905. variables. (You won’t always have to do this, as the !Boot file will be
  21906. run the first time you open the directory containing !Logistix. You only
  21907. need to do it at this time because you have been messing about with the
  21908. files, and the !Boot file may be different now than when it was last
  21909. run.) Clicking on any Logistix data file will now load Logistix and the
  21910. data file ready for use. You will still have to set up any default
  21911. prefixes etc.
  21912. 5.5
  21913. It is not possible to do this automatically with a simple file such as
  21914. the above, because the full pathname would require to be split up to
  21915. provide the path to your file directory minus the filename. i.e. you
  21916. would require string handling facilities such as in Basic.
  21917. 5.5
  21918. Note: The Logistix application itself still sets the CSD to the Logistix
  21919. directory within the !Logistix application directory. Implementing a
  21920. fully RISC-OS compatible version would require rewriting of the actual
  21921. coded LGX file, which is not possible without both the source code file
  21922. and the full approval of both Acorn and Grafox.
  21923. 5.5
  21924. Other applications requiring a parameter block in memory − Other
  21925. programs (in Basic) written before RISC-OS, which will autoload a data
  21926. file at startup if a parameter block is set up in memory, could be made
  21927. to auto load using a version of the following routine. Again, this
  21928. builds an exec file which is run in Basic, using simple string handling
  21929. to split off the filename from the full pathname.
  21930. 5.5
  21931. This example file was built to implement auto loading under RISC-OS on
  21932. an old BBC program which was written for DFS, and without re-writing
  21933. could not handle full pathnames, therefore it includes a line to set the
  21934. current directory to the application directory.
  21935. 5.5
  21936. Note: This particular version works due to Basic being selected during
  21937. the execution of the Exec file and the memory accessible to both the
  21938. file and the program is that assigned by the selection of Basic. Any
  21939. other programs (e.g. integrated packages) which are to use the shared
  21940. parameter block must (obviously) use the same memory, so must not move
  21941. out of Basic (return to the desktop) in between the programs, but simply
  21942. chain each other.
  21943. 5.5
  21944. This actual file will be irrelevant to most users, but it does show a
  21945. method of getting around the conversion of system variables to actual
  21946. data therefore easing the amount of work involved in conversion of BBC B
  21947. and Master programs to Archimedes. I know that re-writing the appli
  21948. cations might be more sensible, but this is aimed at people who know how
  21949. an application works, but didn’t write it in the first place!
  21950. 5.5
  21951. |    “Autoload”
  21952. 5.5
  21953. | A Customised version of “InitFile”
  21954. 5.5
  21955. | −  Public Domain by D.Potter
  21956. 5.5
  21957. |                             7/7/90
  21958. 5.5
  21959. |       —— Information ——-
  21960. 5.5
  21961. | Allows parameter block loading by
  21962. 5.5
  21963. | double-clicking on a data file
  21964. 5.5
  21965. | in the RISC-OS desktop.
  21966. 5.5
  21967. | Intended in this version for the
  21968. 5.5
  21969. | upgrade of an old BBC/Master
  21970. 5.5
  21971. | program called Datbase, but the
  21972. 5.5
  21973. | principal should work for other
  21974. 5.5
  21975. | Basic programs which when started
  21976. 5.5
  21977. | up check a parameter block in
  21978. 5.5
  21979. | memory, and if found to be valid,
  21980. 5.5
  21981. | will load the file referred to in
  21982. 5.5
  21983. | the block.
  21984. 5.5
  21985. | eg. Old “Integrated” suites of
  21986. 5.5
  21987. | programs which allow files to be
  21988. 5.5
  21989. | left as active or current for each
  21990. 5.5
  21991. | program in the suite.
  21992. 5.5
  21993. |
  21994. 5.5
  21995. | This is an Obey File.
  21996. 5.5
  21997. | An Exec file is built by this file
  21998. 5.5
  21999. | including the filename for the
  22000. 5.5
  22001. | startup file that was double
  22002. 5.5
  22003. | clicked on.
  22004. 5.5
  22005. | The !Boot file for app. must be an
  22006. 5.5
  22007. | Obey file containing the commands
  22008. 5.5
  22009. |       Set DatBa$Dir <Obey$Dir>
  22010. 5.5
  22011. |       Set Alias$@RunType_xxx Obey <DatBa$Dir>.AutoLoad %%*0
  22012. 5.5
  22013. | (As well as any other commands
  22014. 5.5
  22015. | already there)
  22016. 5.5
  22017. | Where xxx is the filetype for the
  22018. 5.5
  22019. | data file. (DatBa$Dir will be set
  22020. 5.5
  22021. | to the directory where the program
  22022. 5.5
  22023. | & this file reside when the !Boot
  22024. 5.5
  22025. | file is run)
  22026. 5.5
  22027. |
  22028. 5.5
  22029. | Put the full pathname information
  22030. 5.5
  22031. | in system variable DBload$
  22032. 5.5
  22033. Set DBload$ %*0
  22034. 5.5
  22035. | Clear extraneous data which
  22036. 5.5
  22037. | appears when a file is written to
  22038. 5.5
  22039. | at this stage by dummy spooling.
  22040. 5.5
  22041. | This data is not needed here
  22042. 5.5
  22043. | anymore!
  22044. 5.5
  22045. Spool <DatBa$Dir>.!LoadFile
  22046. 5.5
  22047. Echo <DBload$>
  22048. 5.5
  22049. spool
  22050. 5.5
  22051. |
  22052. 5.5
  22053. | Now create the actual Exec file
  22054. 5.5
  22055. | which will run the program and
  22056. 5.5
  22057. | load file.
  22058. 5.5
  22059. Spool <DatBa$Dir>.!LoadFile
  22060. 5.5
  22061. Echo || !LoadFile − Transient program built by AutoLoad
  22062. 5.5
  22063.  (PD) by D.Potter 1990
  22064. 5.5
  22065. Echo *Basic
  22066. 5.5
  22067. Echo REM this particular application requires the CSD to be it -
  22068. 5.5
  22069. Echo *Dir <DatBa$Dir>
  22070. 5.5
  22071. Echo REM The startup parameter block for this application
  22072. 5.5
  22073.  is at &F000, with
  22074. 5.5
  22075. Echo REM the filename held at &F100, any conditions for
  22076. 5.5
  22077.  printing at &F110,
  22078. 5.5
  22079. Echo REM the record number to display at start up held in R%,
  22080. 5.5
  22081. Echo REM and HIMEM held in H%
  22082. 5.5
  22083. Echo HIMEM=&F000
  22084. 5.5
  22085. Echo H%=&F000
  22086. 5.5
  22087. |    Echoing a system variable
  22088. 5.5
  22089. |    causes it to be converted to
  22090. 5.5
  22091. |    the real data.
  22092. 5.5
  22093. Echo F$=“<DBload$>”
  22094. 5.5
  22095. Echo REM Split off the actual filename itself (This
  22096. 5.5
  22097.  particular example is
  22098. 5.5
  22099. Echo REM for conversion of a BBC B/
  22100. 5.5
  22101. Master program which
  22102. 5.5
  22103.  has restricted
  22104. 5.5
  22105. Echo REM filename length, and therefore can’t handle
  22106. 5.5
  22107.  full pathnames)
  22108. 5.5
  22109. Echo REPEAT:F$=MID$(F$,INSTR(F$,“.”)+1):UNTIL INSTR(F$,“.”)=0
  22110. 5.5
  22111. Echo $&F100=F$ : $&F110=“”:R%=1
  22112. 5.5
  22113. Echo MO.12
  22114. 5.5
  22115. Echo CHAIN“DATBASE”
  22116. 5.5
  22117. |
  22118. 5.5
  22119. | Where a return is required after a
  22120. 5.5
  22121. | command such as L for load, simply
  22122. 5.5
  22123. | start a new Echo statement for the
  22124. 5.5
  22125. | next command − a return will be
  22126. 5.5
  22127. | put in.
  22128. 5.5
  22129. |
  22130. 5.5
  22131. | Close the file
  22132. 5.5
  22133. Spool
  22134. 5.5
  22135. |
  22136. 5.5
  22137. | Set its file type
  22138. 5.5
  22139. SetType <DatBa$Dir>.!LoadFile Command
  22140. 5.5
  22141. |
  22142. 5.5
  22143. | And do it!
  22144. 5.5
  22145. Exec <DatBa$Dir>.!LoadFile
  22146. 5.5
  22147. Douglas Potter, Glasgow
  22148. 5.5
  22149. •   Oak SCSI on A5000 − Using the ‘free’ menu option on a SCSI disc on the
  22150. iconbar doesn’t make use of the new Free module in the RISC-OS 3 ROM. To
  22151. correct this, include the following line in your hard disc boot file :
  22152. 5.5
  22153. Set Alias$Free ShowFree -FS scsi %0
  22154. 5.5
  22155. That’s all there is to it. Now, whenever you select ‘free’ from the SCSI
  22156. menu, a Free window pops up. The ‘%0’ picks up the device (disc drive)
  22157. name. Should you then subsequently wish to use Free from the command
  22158. line, use :
  22159. 5.5
  22160. %Free [<disc spec>]
  22161. 5.5
  22162. Typing ShowFree at the command line (with no parameters) reports the
  22163. command syntax.
  22164. 5.5
  22165. David Lenthall, London
  22166. 5.5
  22167. •   Refilling ink cartridges − We have, in past issues, published comments
  22168. about refilling inkjet cartridges with various types of ink. Tord
  22169. Eriksson sent in another such comment a while ago but I didn’t publish
  22170. it. He now writes....
  22171. 5.5
  22172. Remember my recommending using water or fountain pen ink to keep your
  22173. printer going when your ink supply is gone? You didn’t publish it
  22174. (sensibly enough!) and I ran into deep trouble with it. I thought the
  22175. printhead was a goner (and messed it up further...), as the printer
  22176. didn’t work properly. After buying a new £100 head, with no improvement,
  22177. I found out that the reason you shouldn’t refill the cartridges is that
  22178. air easily leaks into the paint container if you disconnect it many
  22179. times (as when injecting ink) because the membrane gets worn. This means
  22180. that suction isn’t up to specification and you get uneven paint
  22181. delivery.
  22182. 5.5
  22183. You may publish this as a warning − water does not harm a Canon BJ-what-
  22184. ever printer − but the side-effects can be very troublesome! I could
  22185. have spent the £100 on something more sensible!!!    Tord Eriksson,
  22186. Sweden  A
  22187. 5.5
  22188. Impression Hints & Tips
  22189. 5.5
  22190. •   Function key changes (cont’d) − In addition to Michael Ben-Gershon’s
  22191. excellent hint in Archive 5.2, p.12: Why not go the whole way and put
  22192. all those styles (like those fonts you use regularly to enhance your
  22193. texts) into your Impression default document, after you have assigned a
  22194. function key to each of them?
  22195. 5.5
  22196. There are quite a lot of possibilities; in addition to those fields on
  22197. the function key strip that are quite empty, you can remove the default
  22198. styles you may not need (like hanging indent) and if there are some of
  22199. those ten scales offered which you never use, you can simply take over
  22200. those keys for your own styles.
  22201. 5.5
  22202. You will find that the editable field which allows you to define a
  22203. keyboard short cut is slightly unusual: It accepts only certain entries
  22204. (function keys, <Shift>, <Return>,..), and it is not necessary to delete
  22205. the existing content with <Ctrl-U> − just click in the box, enter the
  22206. new combination and click on OK. (Don’t press <Return>, because that
  22207. simply means that the short cut for your style is the Return key!)
  22208. 5.5
  22209. Jochen Konietzko, Köln, Germany
  22210. 5.5
  22211. • Sprite files in Impression − Kevin Beales told us (Archive 5.4 p5)
  22212. about Impression’s ability to scale pictures in Draw format. In this
  22213. context, he forgot to mention something even more remarkable: Impression
  22214. can also scale sprites! This works in exactly the same way as he
  22215. described.
  22216. 5.5
  22217. Of course, due to the well known problems of jagged edges/loss of
  22218. detail, you shouldn’t scale up or down too much; but if you have a
  22219. sprite that is just slightly too big or too small for its intended
  22220. place, then this feature of Impression is certainly extremely useful!
  22221. 5.5
  22222. Jochen Konietzko, Köln, Germany
  22223. 5.5
  22224. •   Illustrated Impression documents − I often include sprite and draw
  22225. files in my Impression documents (for test papers and the like).
  22226. 5.5
  22227. One minor problem is that one can’t really edit those graphic frames in
  22228. an Impression document. Therefore, to have the corresponding files
  22229. always on hand, I save them into the document’s directory (after opening
  22230. a window on this directory by <shift>-double clicking).
  22231. 5.5
  22232. This is one more reason for buying Compression: A typical sketch I make
  22233. with DrawPlus is reduced from about 6k to about 2 kbytes. A screen shot
  22234. made of an oscilloscope application I use takes up 100 kbytes; Compres
  22235. sion reduces this to just about 5k bytes (!). This means that even
  22236. pictures that appear in several documents don’t clog up the hard disk
  22237. too much, if you always save them together with the documents they
  22238. appear in.
  22239. 5.5
  22240. (Surely, though, the Draw files are already in the Impression document
  22241. directory? Why not edit them directly from there? Two drawbacks, I
  22242. suppose... you don’t know which file is which because they have names
  22243. like Story2 and Story4 (but you could identify them if you have full
  22244. info set in the filer window because of their size) and secondly the
  22245. changes to the Drawfiles are only displayed then next time you load the
  22246. Impression document. Ed.)
  22247. 5.5
  22248. (By the way: Can anyone tell me whether this hint will become obsolete
  22249. once Computer Concepts’ much vaunted Impulse II will be available, that
  22250. is, whether you will then be able to open a graphic file saved somewhere
  22251. by clicking on a graphic frame in an Impression document?)
  22252. 5.5
  22253. Jochen Konietzko, Köln, Germany
  22254. 5.5
  22255. •   Tiny left hand margin − I often wondered why the default document on
  22256. the Impression disc has a left hand margin set on the base style of a
  22257. couple of millimetres. Because of my sense of symmetry, I reduced that
  22258. to zero as soon as I started using Impression. Surely, if you create a
  22259. new master page with, say, 10cm margins, you don’t want the lefthand
  22260. margin to be 10.2cm?
  22261. 5.5
  22262. Suddenly it dawned on me... yes, I know I’m slow... the reason for the
  22263. small lefthand margin is to make it easier to position the cursor to the
  22264. left of the first character on a line. If, as I do, you have zero margin
  22265. in the base style, you’ve got to judge the mouse cursor fairly accu
  22266. rately otherwise it goes onto the paper margin and turns into a hand.
  22267. Well, yer pays yer money... but I think I’ll stay as I am. I have too
  22268. many documents to change them all. Ed.
  22269. 5.5
  22270. •   Impression speed users’ tips − I find that if you can get into the
  22271. habit of using <adjust> reverse scrolling, it really does save time,
  22272. especially when I am laying out the magazine and the screen is cluttered
  22273. with windows. Just press <select> to scroll down and switch quickly to
  22274. <adjust> to go back up again without having to move the mouse and locate
  22275. the other end of the scroll bar − which could be under another window
  22276. anyway.
  22277. 5.5
  22278. Also, <adjust> can be extremely useful, again with a cluttered screen,
  22279. for moving windows whilst keeping them where they are relative to the
  22280. other documents. It takes practice, but it speeds things up in the long
  22281. run. Ed.  A
  22282. 5.5
  22283.  
  22284. Hints and Tips
  22285. 5.6
  22286. •   Alt key problems − (I think I’ll have to write this in six-foot high
  22287. letters. We’ve said it several times, but people keep missing out on
  22288. it.) If your <alt>-keypad numbers don’t give the special characters you
  22289. think they should, type *UNPLUG and you’ll probably find that someone or
  22290. something has unplugged the InternationalKeyboard module. If so, do an
  22291. RMREINIT InternationalKeyboard and all will be well. Ed.
  22292. 5.6
  22293. •   Copy key use − I had not realised until recently that the copy key has
  22294. the function of “delete right” (as it does in Impression) in most RISC-
  22295. OS applications.
  22296. 5.6
  22297. •   Floppy backup – (I know it’s obvious but...) On a single floppy disc
  22298. machine, if you want to backup up floppy discs in one chunk, i.e.
  22299. instead of having to take the discs in and out twice, call up the task
  22300. manager and increase the “Next” memory allocation to 800k or more. If
  22301. you don’t, it loads 640k into memory and copies that and then copies the
  22302. last 160k separately.
  22303. 5.6
  22304. •   External floppy drives on A5000 − There seems to be some concern and
  22305. confusion over connecting extra floppy drives to the A5000 and over the
  22306. fact that ADFS treats the drives in a different way from previous
  22307. Archimedes computers. Let me try to explain.
  22308. 5.6
  22309. The A5000 motherboard can access two internal floppy drives and two
  22310. external drives. However, many modern 3½“ drives can only be configured
  22311. as drive 0 or 1. Thus to allow a full complement of four drives, drive
  22312. selections 2 and 3 are transformed into 0 and 1 but on a separate ribbon
  22313. cable (as in a PC).
  22314. 5.6
  22315. Here is the problem: If one internal drive is fitted (physical drive 0/
  22316. 1) and an external drive is added (addressed as drive 3), then to access
  22317. the external drive you must ‘*configure floppies 4’, with the result
  22318. that you have two useless floppy drive icons!
  22319. 5.6
  22320. The solution that Acorn has is: Logical to physical drive mapping,
  22321. whereby ADFS can be configured with two floppies but would access
  22322. physical drive 3 when requested to read from logical drive 1. In order
  22323. to achieve this, ADFS must determine which physical drives are present.
  22324. This is achieved after reset (or rmreinit) by performing a ‘restore’
  22325. operation on each physical drive and then testing for a track 0
  22326. indication from a functional drive. The following table depicts a
  22327. typical example:
  22328. 5.6
  22329.      Physical Drive   Present    ADFS drive Nº
  22330. 5.6
  22331.    0   −   −
  22332. 5.6
  22333.    1   Y   :0
  22334. 5.6
  22335.    2   −   −
  22336. 5.6
  22337.    3   Y   :1
  22338. 5.6
  22339. This has a benefit for production by permitting the single internal
  22340. drive to be physical drive 1, which is the default for the PC world, and
  22341. hence not requiring link changes. Note that the 82C710 controller fitted
  22342. to the A5000 has 48mA sink capability and therefore does not require a
  22343. buffer board to operate with 5¼“ drives fitted with 150R pullup
  22344. resistors.
  22345. 5.6
  22346. Drive mapping was the main reason for accessing the floppy after a
  22347. reset, but once this approach was adopted, several other features were
  22348. possible.
  22349. 5.6
  22350. (1) 40 track drive detection. MultiFS allows 40 track discs to be read
  22351. in 80 track drives but, if a real 40 track drive is fitted, the double
  22352. stepping mode is inhibited. This test is performed on all physical
  22353. drives detected and works by first seeking to track 44 (a 40 track drive
  22354. will block at track 40, 41 or 42) and then seeking to track 2 (42 step
  22355. pulses). A 40 track drive will indicate track 0 at completion. Thus, if
  22356. you have a 40/80 switchable drive, you should type ‘*rmreinit ADFS’
  22357. after changing mode to ensure ADFS knows about the change.
  22358. 5.6
  22359. (2) During shipping, some floppy drives can have their heads shocked
  22360. beyond track 0 (negative track number). The 40 track drive detection
  22361. scheme ensures these drives will be recalibrated correctly.
  22362. 5.6
  22363. (3) If you ‘*configure’ too many floppies, ADFS will only install the
  22364. number detected. Conversely if you ‘*configure’ too few drives, ADFS
  22365. will not use the excess physical drives (the physically greater drive
  22366. numbers will be ignored). Lastly, if the configured floppies is 0 then
  22367. ADFS will not attempt to select any floppies.
  22368. 5.6
  22369. If you have configured the correct number of floppies, the extra time
  22370. spent ‘booting’ should normally be less than 250ms, that is 80 x 3ms
  22371. step pulses to detect a 40 track drive plus the time to initially
  22372. restore the head. Note that a configured 12ms step time is now trans
  22373. lated on an A5000 to 25ms to allow for very old/slow 40 track 5¼“ drives
  22374. sometimes found on prehistoric Beebs.
  22375. 5.6
  22376. I think this should explain the different behaviour of ADFS on A5000.
  22377. (Could this also explain why the A5000 floppies seem slow compared to my
  22378. A540? Ed) However, if you are trying to connect 5¼“ drives to the A5000,
  22379. one other factor needs to be taken into account. Unless they are
  22380. modified, 5¼” drives cannot be mixed with 3½“ drives on the same ribbon
  22381. cable because of differences in pin out of the ‘disc changed’ and
  22382. ‘ready’ signals. To work correctly on the internal drive connector, pin
  22383. 34 must present the ‘disc changed’ signal (or be disabled) and pin 2
  22384. carries the density select from the FDC.
  22385. 5.6
  22386. Therefore connect the 5¼“ drive on the external (middle) socket and make
  22387. the following link changes to the A5000:
  22388. 5.6
  22389. LK18 (north and west of socket) in the West position (viewed from front
  22390. of m/c); LK19 (north and east of socket) should be removed (park the
  22391. jumper on the centre pin only); LK21 (south and west of socket) should
  22392. be removed (park the jumper on either pin).
  22393. 5.6
  22394. These links only affect the external socket. To give the full informa
  22395. tion on it.
  22396. 5.6
  22397. LK18 selects logic hi (west) or logic lo (east) for the high density
  22398. signal from the FDC
  22399. 5.6
  22400. LK19 selects ‘density’ to drive (west) or ‘disk changed’ from drive
  22401. (east) or neither (removed) on pin 2 of drive interface
  22402. 5.6
  22403. LK21 enables (jumper fitted) the disc changed signal from pin 34 of the
  22404. drive interface.
  22405. 5.6
  22406. Your drive should then be configured as drive 0 or 1, remembering to
  22407. *configure floppies 2
  22408. 5.6
  22409. The above information was culled from a bulletin board by Brian Debenham
  22410. of Chelmsford. One of our other subscribers got some help from Steve
  22411. Picton at IFEL who referred him to pages 1-23 and 1-26 in the A5000
  22412. Technical Reference Manual and included a useful table for link changes
  22413. as follows:
  22414. 5.6
  22415. Drive type   link 18   link 19  
  22416. link 21
  22417. 5.6
  22418. PC-AT 1M / 2M   1-2   2-3   1-2
  22419. 5.6
  22420. PS/2 1M / 2M   2-3   2-3   1-2
  22421. 5.6
  22422. older 1M types   *   1-2   2-
  22423. 3
  22424. 5.6
  22425. most 5¼ drives   *   don’t fit   2-
  22426. 3
  22427. 5.6
  22428.    * = either position or don’t fit at all
  22429. 5.6
  22430. It’s difficult to get at these links, so a pair of long nosed pliers is
  22431. extremely useful.  Bob Potter, Bath.
  22432. 5.6
  22433. •   Lemmings − Did you know that a ‘blocker’ can be released by hitting it
  22434. in the right place with a ‘digger’ and also by burrowing very closely
  22435. underneath with a ‘basher’?
  22436. 5.6
  22437. •   MS-DOS users − Even in CGA emulation, the latest emulator screen
  22438. updates can be very slow. However, some of the new utilities (like EDIT)
  22439. have a ‘switch’ to allow faster CGA updates so...
  22440. 5.6
  22441. EDIT MYFILE.TXT /G
  22442. 5.6
  22443. will edit the file with quicker screen updates (/G means “switch G”). In
  22444. true Archimedes style, HELP <command> now gives the syntax and meaning
  22445. of commands (about time, too!).  Paul Bamberger, Hinckley.
  22446. 5.6
  22447. •   !MultiFS bug (with PCEmulator 1.70)? − Those of your readers using the
  22448. latest version (1.70) of the PCEmulator on RISC-OS 2 may be interested
  22449. in the following problem which I found recently. I have reported it to
  22450. Acorn, but have not had response yet. I understand that users of RISC-OS
  22451. 3 need not use !MultiFS with the PCEmulator because of their different
  22452. disc handler, so they need not read further into this hint.
  22453. 5.6
  22454. Following the correspondence in Archive about how to shut down a hard
  22455. disc reliably (See Archive 5.1 p26 ‘The Engineer Speaks’.) I now type
  22456. *SHUTDOWN just before turning off the power on my A540. After loading
  22457. !MultiFS on the icon bar, and then quitting it again, I found that when
  22458. I typed *SHUTDOWN, sometimes it just hung, sometimes I got an error
  22459. message, something like “Address exception at &01889 CE0”, and then I
  22460. could do nothing until after resetting the Archimedes, (<ctrl-break>
  22461. would not work). After the reset, *SHUTDOWN normally worked as usual,
  22462. occasionally, I had to turn off the power to reset it.
  22463. 5.6
  22464. After a little research I found that when !MultiFS quits, it removes the
  22465. MultiFS module, but leaves MultiFS in the list of filing systems held by
  22466. ‘FileSwitch’. Thus when *SHUTDOWN is trying to shut down all filing
  22467. systems, it cannot cope with MultiFS as the module is no longer loaded.
  22468. 5.6
  22469. You can check which filing systems are known to ‘FileSwitch’ with the
  22470. following BASIC program:
  22471. 5.6
  22472.  10 REM >FScheck  test which filing
  22473. 5.6
  22474.  systems exist
  22475. 5.6
  22476.  20 PRINT“Number Name”
  22477. 5.6
  22478.  30 @%=6:DIM fsname% 20
  22479. 5.6
  22480.  40 FOR F%=3TO255
  22481. 5.6
  22482.  50 SYS “OS_FSControl”,33,F%,fsname% ,21
  22483. 5.6
  22484.  60 L%=−1:REPEAT:L%+=1
  22485. 5.6
  22486.  70 UNTIL fsname%?L%=0
  22487. 5.6
  22488.  80 IFL%>0 fsname%?L%=13:PRINTF%“ ” $fsname%
  22489. 5.6
  22490.  90 NEXT
  22491. 5.6
  22492. To make ‘FileSwitch’ forget about MultiFS use the program below:
  22493. 5.6
  22494.   10 REM >DelMultiFS  delete multifs filing system
  22495. 5.6
  22496.   90 REM  see whether MultiFS is still loaded, if not, exit
  22497. 5.6
  22498.  100 SYS “OS_FSControl”,13,“MultiFS” ,0 TO ,F%,T%
  22499. 5.6
  22500.  110 IF T%=0 END
  22501. 5.6
  22502.  120 REM  next line removes MultiFS
  22503. 5.6
  22504.  130 SYS “OS_FSControl”,16,“MultiFS”
  22505. 5.6
  22506.  140 END
  22507. 5.6
  22508. While reporting this problem to Acorn, they gave me a very helpful
  22509. statement of the essential differences between the various ways of
  22510. closing down a hard disc system, which I feel sure they will not mind my
  22511. passing on.
  22512. 5.6
  22513. *SHUTDOWN closes all open files on all filing systems, logs off all file
  22514. servers, causes hard discs to be parked.
  22515. 5.6
  22516. *DISMOUNT closes all files, unsets directories and parks the given disk
  22517. (The currently selected drive on the current filing system is assumed if
  22518. this command is given without specifying the disc.)
  22519. 5.6
  22520. *BYE closes all the files, unsets directories and parks the hard discs
  22521. on the currently selected filing system.
  22522. 5.6
  22523. So you see the engineer was quite right, they are different. It depends
  22524. what your current disc is, and only the *SHUTDOWN parks the disks on ALL
  22525. the filing systems.   Kate Crennell, Didcot.
  22526. 5.6
  22527. •   Mysterious error message from Hard Disc Companion II − In Archive Vol
  22528. 5.4 page 3 you described the new version of the program from Risc
  22529. Developments. I upgraded from my old version recently and found that the
  22530. new version does not allow comments in the ‘Ignore’ part of the file
  22531. used to specify which directories and files are not to be backed up. I
  22532. found this a very useful feature of the previous version, and I should
  22533. like any other users who regret its passing to join me in asking Risk
  22534. Developments to put this feature back as soon as possible.
  22535. 5.6
  22536. This is mildly annoying, but I found a more serious problem. The first
  22537. time I used the ‘Hard Disc Companion II’ it worked beautifully, but the
  22538. second time, it would not load onto the icon bar, instead I got the
  22539. usual ‘traffic sign’ warning window and a message “File not found at
  22540. line 49”. Neither the !Boot nor the !Run files had 49 lines in them. The
  22541. program is not written in Basic, so it has no line numbers. I eventually
  22542. found that since making my first full backup and trying to do the next
  22543. incremental backup, I had deleted one of the files which I had previ
  22544. ously said I wanted to ‘ignore’ in the ‘Choices’ file. Luckily, it is
  22545. possible to edit the ‘Choices’ file with !Edit, so I just took out that
  22546. line. I have reported this error to RISC Developments and they said they
  22547. hope to make the error message more informative and tell you the name of
  22548. the file which is missing.  Kate Crennell, Didcot.
  22549. 5.6
  22550. •   Paper for inkjets − I have a Hewlett Packard Deskjet 500 inkjet
  22551. printer. I have had great trouble finding good paper − the main problem
  22552. seems to be how absorbent the paper is; too absorbent and you will get
  22553. white patches in your black areas, but not absorbent and it will smudge
  22554. across the paper! If you go into most paper suppliers or printers, they
  22555. will be happy to give you various samples that you can try. Make sure
  22556. when you test the paper that you include very small text, thin and thick
  22557. straight lines at various angles, fine and thick curves, shading, large
  22558. black areas and bit mapped graphics. I have ended up using “Mustang
  22559. Copier − Long grain 80gsm” for my draft printing (as it is cheap − about
  22560. 0·5 pence per sheet) and Croxley Script 100gsm for quality work (this
  22561. works out at about 3 pence per sheet but is water marked and has a nice
  22562. feel to it). There is probably better paper available − I have only
  22563. tried about twenty types.  Paul Bamberger, Hinckley.
  22564. 5.6
  22565. •   Pandora’s Box problems? − There seems to be an incompatibility between
  22566. Pandora’s Box and Acorn’s AKA16 MIDI card (v3.14). Therefore, to load
  22567. the game, simply type: *RMKill Midi <return> before attempting to run
  22568. it.  Rob Brown, Surrey.
  22569. 5.6
  22570. •   Psion Organiser and the Archimedes − The PD program !Download, written
  22571. by Emmet Spier, works very well with the Psion Organiser. To upload from
  22572. an Archimedes to an Organiser, I created an application called !Upload,
  22573. consisting of a suitable sprite and a !Run file as follows:
  22574. 5.6
  22575. IconSprites <Obey$Dir>.!Sprites
  22576. 5.6
  22577. Filer_OpenDir serial:
  22578. 5.6
  22579. C. Parker, Hong Kong.
  22580. 5.6
  22581. •   Second internal 3½“ drive on the A5000 − I have fitted a second 3½”
  22582. drive internally on my A5000 with no problems at all.
  22583. 5.6
  22584. The 3½“ drive fitted to the A5000 is a Citizen model OSDA20C. These do
  22585. not seem to be generally available in the UK. The Citizen OSDA39C is
  22586. easy to get and the ONLY difference (according to my experience and
  22587. Citizen UK) is that the drive light is a different colour. They are
  22588. generally available for about £75 + VAT but I got mine for £35 + £10
  22589. overnight delivery + VAT = £52.88 from:
  22590. 5.6
  22591. CD2000, PO Box 1061, London Road, Slough, Berks SL3 8RE (0753−553366)
  22592. (fax 0753− 554661) who were super efficient and helpful.
  22593. 5.6
  22594. There is a power plug already inside the A5000, so all you need is a 9“
  22595. drive cable. I have altered NO links or switches on the A5000. All I did
  22596. was set the tiny slider switch on the drive (next to the socket for the
  22597. data cable) to the opposite position on the drive already in the
  22598. machine. (Actually, this wouldn’t make any difference, as explained in
  22599. the section above about external floppies on the A5000. Ed)
  22600. 5.6
  22601. You need 4 off 18mm spacers and 4 off screws (6BA I think) to fit the
  22602. drive to the bottom of the A5000 case. I used various spacers and nuts
  22603. to make up the 18mm and the drive has worked faultlessly. With RISC-OS 3
  22604. being so slow at any disc backing up or copying, the second drive is
  22605. essential.  Colin Thompson
  22606. 5.6
  22607. •   Shrinking windows − A rare bug has just ‘bitten’ me while using
  22608. Impression. It’s not a bug in Impression, in fact, but a bug in RISC-OS
  22609. 2. I was trying to change the size of the window on a large Impression
  22610. file by using the sizing icon in the bottom right-hand corner of the
  22611. window. The window jumped to about an inch high and would not go any
  22612. longer unless I clicked to open the window to full screen size − that
  22613. worked fine but as soon as I touched the sizing icon, the window
  22614. contracted! I tried various other Impression files but they were OK. I
  22615. restarted Impression, I cut and pasted the text, I saved the text and
  22616. created a new document but the window kept jumping back to this reduced
  22617. size! A phone call to CC revealed the reason. In RISC-OS 2, if the
  22618. window size is exactly 65,535 OS units in size, it gets confused and
  22619. loses the top bit of the window size number and thinks it’s a somewhat
  22620. shorter window. All I had to do was to create a new page in the document
  22621. and all was well. Alternatively, I could have changed the magnification
  22622. − even 1% change solves the problem. Presumably, the chances of it
  22623. happening are small (1 in 65,535?) and it has to be a large document −
  22624. mine was 28 pages displayed at 140% magnification.  A
  22625. 5.6
  22626.  
  22627.  
  22628.  
  22629. •   Virus Kit v1.17 − Some people have had a few problems running version
  22630. 1.17 of the virus killer, which is supplied on Shareware 17 and on the
  22631. Archive 5.5 program disc. Here are a few hints that might help you to
  22632. solve them:
  22633. 5.6
  22634. (i) You should let your Archimedes see either a !System folder or !Scrap
  22635. file before running the !Killer application.
  22636. 5.6
  22637. (ii) Some sticky backdrops clash with the !Killer application and so
  22638. should not be used at the same time.
  22639. 5.6
  22640. (iii) If you have caught the module virus, it is possible for the
  22641. VProtect module in the !Killer application to become infected and so
  22642. prevent the program from being run.
  22643. 5.6
  22644. • Acorn Virus Kit (latest) − Acorn have decided to make the latest
  22645. version of The Virus Kit (currently 1.26) available through Pineapple
  22646. Software rather than Acorn Dealers. This will allow them to keep tighter
  22647. control over the version being distributed and any updates. Contact
  22648. Pineapple Software for availability though distribution isn’t due to
  22649. start until May.
  22650. 5.6
  22651. •   Wimp programming oddities? In the process of developing a wimp utility
  22652. in 100% machine code, I’ve come across a few things that other program
  22653. mers might like to look out for...
  22654. 5.6
  22655. Menus − You can click the mouse in a menu one pixel above the first menu
  22656. item (and also one pixel below the last item). The result is that
  22657. Wimp_Poll returns a menu tree of zero length to your program i.e. the
  22658. first word is returned as −1. Once I had found this (it crashed my
  22659. program completely on random mouse clicks!) I tried it out on all the
  22660. programs I could find. The easiest test is to click the menu button and
  22661. then the adjust button without moving the mouse. Most commercial
  22662. programs weather it OK, just redrawing the menu. Some that don’t are
  22663. Menon 1.86 (which gives a “bad string” error), Ian Copestake’s IDEFS
  22664. (which comes up with “File ‘:4’ not found”), and the Cross-32 assembler
  22665. (which corrupts its menu title to “Crosr 32”).
  22666. 5.6
  22667. Zooms − I’ve seen <adjust> reverse-scrolling mentioned several times,
  22668. but this applies (or should apply, anyway!) to just about anything with
  22669. arrow icons on it; notably the zoom-windows in Paint/Draw and all the
  22670. nudge arrows in Impression.
  22671. 5.6
  22672. Variable Filetype Variables − Regarding David Lenthall’s article in
  22673. Archive 5.5 p 63, I’m using a user file type and have found that the way
  22674. round file type clashes is, in fact, already built into RISC-OS! You
  22675. don’t need to create extra system variables to shift file type numbers
  22676. about:
  22677. 5.6
  22678. SYS “OS_FSControl”,31, “FileTypeName” TO ,,FileTypeNumber%
  22679. 5.6
  22680. works equally well (now we just have to persuade everyone to do this
  22681. rather than using absolute file types in their programs). Fred Williams,
  22682. Cannock Wood  A
  22683. 5.6
  22684.  
  22685.  
  22686.  
  22687. Impression Hints & Tips
  22688. 5.6
  22689. This month’s hints and tips have been submitted by the following people:
  22690. Computer Concepts (CC), Richard Hallas (RH), Paul Beverley (PB), Patrick
  22691. Dowling (PD), Rob Sherratt (RS) and Steve Kirkby (SK). Many thanks to
  22692. all.
  22693. 5.6
  22694. •   Hyphenation − If you want to be able to switch hyphenation on and off
  22695. easily, create a new style with <ctrl-F5>, give it a name such as
  22696. “hyphenated”, go down to the section where it deals with hyphenation,
  22697. switch hyphenation ON, go to the bottom and select an unused key short-
  22698. cut, say <ctrl-shift-F1> and save the new style. Now, to switch
  22699. hyphenation on for a given paragraph, select the paragraph (using <ctrl-
  22700. @> or quad-click with <select>) and press <ctrl-shift-F1>. Alterna
  22701. tively, if you want hyphenation on for most of the document, edit the
  22702. definition of the basestyle to have hyphenation ON and create a new
  22703. style, in the same way, whose only attribute is that hyphenation is OFF.
  22704. (As an aside, I have always found it difficult to find the line dealing
  22705. with hyphenation in the edit style window but I now know why. If you
  22706. click in the scroll bar three times, half of the word “hyphenation” is
  22707. visible at the bottom of the window. Click again and half is visible at
  22708. the top of the window − very easy to miss. So, either slide the scroll
  22709. bar or simply remember that it is only just visible at the edge of the
  22710. window.) − PB.
  22711. 5.6
  22712. •   Ligatures − The word ‘ligature’ actually means ‘tie’ or ‘bandage’ and,
  22713. in typesetting, it refers to groups of two or more letters which are
  22714. joined together. In professional typesetting, several exist but the
  22715. Archimedes’ font system has just two: fi and fl.
  22716. 5.6
  22717. Impression provides no handy short cut to access them, so if you wish to
  22718. use them, you need to do two separate searches through the entire text
  22719. as follows: bring up the find text box and enter fi into the first slot,
  22720. ensuring the Case sensitive switch is on. Then move the caret into the
  22721. second box, hold down <alt> and type 158 on the numeric keypad. A single
  22722. character will be entered which, when viewed in an outline font which
  22723. supports it, will appear as fi. For fl, repeat the process, but replace
  22724. all occurrences of fl (obviously) with character 159. Remember to do a
  22725. case sensitive search, since replacing Fi and Fl with the ligatures will
  22726. make them lose their capital letters.
  22727. 5.6
  22728. Not all fonts (especially the PD ones) contain the ligatures, and some
  22729. PD fonts have them in the wrong places. You should replace the normal
  22730. letters with the ligatures after you have finished your document because
  22731. Impression’s spell-checker does not take them into account and will
  22732. query any words containing them. This month’s disc should contain a
  22733. system font file which I have created; it is identical to the standard
  22734. one, except that the previously undefined characters have been created
  22735. to look like the outline font characters they produce, so you can see
  22736. things like smart quotes and ligatures in Edit. It’s useful to load this
  22737. in the boot-up sequence. − RH.
  22738. 5.6
  22739. •   Rotated text in Impression − Those lucky enough to own an A5000 will,
  22740. of course, have the new versions of Draw and Font Manager. Charles Moir,
  22741. director of Computer Concepts, suggests the following tip: since the new
  22742. Font Manager can rotate text by itself, create some text in Draw, and
  22743. import it into an Impression graphic frame. Dragging in the frame with
  22744. <adjust> should now rotate the text or you can set the angle precisely
  22745. in the ‘Alter graphics’ dialogue box. − RH
  22746. 5.6
  22747. •   Hyphens and minus signs − Character 153 is very useful as a hyphen −
  22748. as you can see! In fact, it is really the minus sign (compare it with
  22749. the plus and you will find they are both the same width and their
  22750. crossbars are at the same horizontal position − see for yourself −+−+−);
  22751. the minus sign on the keyboard actually produces a short hyphen of the
  22752. sort which should be used to break words at the ends of lines. Anyway,
  22753. Impression provides handy access to this character: simply press <ctrl-
  22754. shift> in conjunction with the minus key. Characters 151 and 152 are the
  22755. en (–) and em (—) dashes respectively but, unfortunately, these have no
  22756. handy short cuts. − RS & RH.
  22757. 5.6
  22758. •   Finding effects − If you want to be able to look through a document
  22759. and find where a particular effect occurs (as opposed to a style) all
  22760. you need to do is modify one line in the ‘UK’ file in the Resources
  22761. directory inside the !Impression application. As supplied, there is a
  22762. line that says “Cnf1:” − all you have to do is add an E making it
  22763. “Cnf1:E”. Next time you start up Impression, you will find that, when
  22764. you click on the arrow at the right of the search string box, it will
  22765. list not only the styles but also the effects. (In case you have
  22766. forgotten, I published a hint a year ago to explain that, to find a
  22767. particular effect or style, you should select it from the menu on the
  22768. search string box and follow it by an “@”. In other words, look for any
  22769. string following the place where that effect / style is first switched
  22770. on.) − PB.
  22771. 5.6
  22772. •   Double scale − on later versions of Impression (about 2.14g onwards)
  22773. you will find that <shift-F12> no longer doubles the scale of the
  22774. current view. This is because <shift-F12> is used on RISC-OS 3 to toggle
  22775. the icon bar forwards and backwards. Double scale has now been moved to
  22776. <ctrl-shift-F11>. − PB.
  22777. 5.6
  22778. •   Reverse characters − From 2.15 onwards, there is a keyboard short-cut
  22779. that I have been asking for since I started using Impression in earnest
  22780. − swap characters. If you press <ctrl-shift-Q>, the two characters
  22781. either side of the cursor swap places. This is very helpful because it
  22782. allows you to correct, very quickly, one of the most common tpying
  22783. errors! − PB
  22784. 5.6
  22785. •   Single word spelling check − If you want to check the spelling of a
  22786. single word, you don’t need to select the whole word − just place the
  22787. cursor somewhere in the word and use <ctrl-W>. (I suppose everyone
  22788. except me knew that anyway!) I find that this speeds things up
  22789. especially if, as you are typing, you get to a word that you don’t know
  22790. how to spell; all you do is to have a go at typing the word and then,
  22791. before you press space or full-stop, press <ctrl-W>. If it is incor
  22792. rectly spelt, it is selected and the spelling box appears with,
  22793. hopefully, a guess at the right spelling. Click on “Replace” and away
  22794. you go.
  22795. 5.6
  22796. Also, if, while you are typing, you get a spelling error bleep then, as
  22797. long as you haven’t started to type the next word, you can press <ctrl-
  22798. W> and correct the erroneous word. − PB.
  22799. 5.6
  22800. •   Avoiding smart quotes − In the magazine, I like to use “smart quotes”
  22801. rather than plain quotes but they look a little funny on program
  22802. listings. If I want to paste in an article which contains programs as
  22803. well as straight text, I have a problem. Either I can switch smart
  22804. quotes OFF on the Preferences list and then edit them into the text or I
  22805. can leave it ON but edit them out of the listing. Then I had a brain-
  22806. wave (-storm?). I realised that the only time I use the Corpus font is
  22807. for program listings, so I never need to have smart quotes in that font.
  22808. All I did, therefore, (well, Adrian did for me) was to load Corpus into
  22809. FontEd (Careware 7) and edit the smart quotes so that they are the same
  22810. as the normal quotes. This can be done by editing each smart quote in
  22811. turn and copying the plain quote into its place. − PB.
  22812. 5.6
  22813. • Rotating sprites − Draw-files can be rotated within Impression but, in
  22814. the normal course of things, not sprites, scanned pictures or bit-image
  22815. clip-art etc, unless Enhanced Graphics is switched on. This is hidden
  22816. away in Preferences, the one in the icon-bar menu, not the one in the
  22817. Document sub-menu. It is effective immediately and does not need to be
  22818. saved as a preference option. (When switched on it also automatically
  22819. switches on Greyscale Dithering but that can be switched off again if
  22820. not wanted.) Scanned images etc can then be rotated inside Impression by
  22821. entering an angle in the Alter Frame box. Remember also, when subse
  22822. quently reloading the file, to switch on the Enhanced Graphics again,
  22823. (if it’s not saved as a preference) as this won’t happen automatically.
  22824. − PD. You can also rotate the image by dragging within the graphic frame
  22825. using <adjust>. − RS.
  22826. 5.6
  22827. • Spurious form-feeds − Using dot matrix printers (e.g. FX80) you may
  22828. get an extra form-feed between pages when printing a multi-page
  22829. document. The solution, (thanks to Alan Williams of Acorn, Melbourne,
  22830. for this one) is to set Scale in the ‘Print’ box to 97 or 98%. No
  22831. further problem! − PD.
  22832. 5.6
  22833. • The underline trap − If you set up underline when creating a Style,
  22834. maybe for a sub-heading, do not try later to remove the underline with
  22835. <shift-ctrl-U>. Probably nothing at all happens but, sometimes, the
  22836. screen goes inverse and panic reigns until Reset is pressed! − PD. I
  22837. tried without success to repeat this problem with release 2.16, but
  22838. <shift-ctrl-U> caused no ill effect. It did not cancel the underlined
  22839. style either, which I guess is correct. − RS.
  22840. 5.6
  22841. • ¼ ½ ¾ characters − These are available on <alt-188>, <alt-189> and
  22842. <alt-190> respectively in the main fonts − Trinity, Pembroke, Homerton
  22843. etc and several others but by no means all. Many fonts conform in
  22844. general, but with omissions, to the character set laid out in Appendix 5
  22845. of the manual. Most contain a bullet (•) on <alt-143>, (or <shift-ctrl-
  22846. H>) and a decimal point (·) on <alt-183>. The ones that don’t, Optima
  22847. and Hull for instance, have their bullet on <alt-183> and a different
  22848. set of characters in the row 128 to 159 including, for instance, TM. In
  22849. general, there seem to be two main variations for this row while System
  22850. is completely on its own. The characters in 160 to 255 appear more or
  22851. less standard across the board where they are present, though most fonts
  22852. omit some and some (PD and magazine fonts particularly) omit most if not
  22853. all the top-bit-set characters, save for the £ symbol. With <alt-215>
  22854. and <alt­247> it’s a toss-up whether you get × and ÷, or Œ and œ, or
  22855. nothing at all. (!Chars in Impression’s Utils directory is a useful
  22856. reference but much better is Beebug’s !CharSel which looks identical but
  22857. has a pointer showing the character number.) − PD.
  22858. 5.6
  22859. • Fit lots − If you want to know or have forgotten what it means, it
  22860. does not appear in the index. You will find it on p.144 on the last, and
  22861. easily missed, page of ‘Print’. − PD.
  22862. 5.6
  22863. • Frames − How to put a frame around an existing chunk of text? You
  22864. can’t! The only way is to move the chunk to the clipboard, create the
  22865. frame and then copy it back in. − PD. You can also create a number of
  22866. new frames which fill the area occupied by the old frame, click in the
  22867. old frame area and then press <adjust> in the new frames. Text will then
  22868. flow from the old frame into the new one and, if you stretch the new
  22869. frames so that there is no printable area left in the original frame,
  22870. the desired effect can be achieved. − RS.
  22871. 5.6
  22872. • Master pages − It seemed perfectly logical to me to press ‘New
  22873. Chapter’ on the key-strip when I wanted to start a fresh document with
  22874. other than the default master page. I got the new master page all right
  22875. − as well as the default page I didn’t want and found no way to get rid
  22876. of it. (You need to move to the unwanted chapter, then use <menu>
  22877. <Edit><Delete Chapter>. − RS) You can alter the current chapter to use a
  22878. different master page by using ‘Alter Chapter’ which is not on the key-
  22879. strip. The key short cut is <shift-ctrl-A>. Be aware that if you are
  22880. viewing the master pages when trying to do this, you will find ‘Alter
  22881. Chapter’ greyed-out on the Edit sub-menu. The answer is to go back to
  22882. the document page, remembering which number master page is wanted and
  22883. try again there. Also note that if you want to use one of the three-
  22884. column master pages, (numbers 7 or 8) remember the default frames are
  22885. only Guides and you must create new frames before anything can be typed
  22886. in. − PD.
  22887. 5.6
  22888. • Guide frames − It is really most provoking, having carefully followed
  22889. the manual to find the screen blandly refusing to operate as stated. Can
  22890. anyone suggest why my guide frames do not remain visible? I create them,
  22891. (sub-menu New Frame) on the document page or on the master page, click
  22892. elsewhere and they just vanish. They are not a lot of use if I can’t see
  22893. them, so which little hidden detail in the manual have I failed to
  22894. register, please? − PD. Guide frames are always positioned as the
  22895. rearmost (back) frame on the page. If you make sure all text /graphic
  22896. frames on the page are local frames (<menu><frame> <alter frame><make
  22897. local>) and then reduce these in size, you will see the yellow guide
  22898. frames that you had created. Guide frames are mainly of use when setting
  22899. up a master page, though. − RS. Am I missing something here? Can’t you
  22900. just make it visible by using <ctrl-F10> to alter the frame and changing
  22901. from a white background to transparent? − PB.
  22902. 5.6
  22903. (By the way, I hadn’t come across the idea of turning a master frame
  22904. into a local frame. If you hadn’t either, read up in the Impression
  22905. manual on page 84 then have a play with it − it could prove a useful
  22906. facility. − PB)
  22907. 5.6
  22908. • Font cache full error − Even with the cache set to a ridiculous size,
  22909. 750k or more, this error recurred and anyway, isn’t the cache itself
  22910. supposed to clear enough space for a new font if necessary? I found that
  22911. some silly PD game had unplugged SpriteUtils module and restoring it
  22912. seemed to resolve the difficulty. It’s not only PD games that do this −
  22913. the demo version of Cataclysm sent out by Archimedes World unplugs
  22914. virtually everything including the Font Manager. Even a power off /on
  22915. will not restore unplugged modules. If you aren’t sure whether anything
  22916. has been unplugged, type *UNPLUG and it will list any unplugged modules.
  22917. − RS.
  22918. 5.6
  22919. • Rule off errors − The Impression manual is a bit short on advice when
  22920. the package refuses to do what it should and it is totally silent on the
  22921. subject of errors. What do you do for instance when the machine throws
  22922. at you: “Overflow while transforming point, print aborted” ? I had been
  22923. trying to print a landscape document containing a few vertical rules.
  22924. Later, I noticed one of the rules slightly projecting beyond the edge of
  22925. the frame. I went to the Style Edit box and switched ‘Rule-off’ on, and
  22926. set it to 0pt. I must have done something right − the next time I tried,
  22927. it produced a perfect print-out! − PD
  22928. 5.6
  22929. • Shift and control symbols − Patrick sent a detailed account of using
  22930. !FontDraw to generate a graphical representation of the <shift> and
  22931. <control> keys − as they appear in Impression menus − and then continued
  22932. to incorporate these into embedded frames at 30 or so points in his
  22933. text. He also asked if there was an easier way? − PD. Yes there is. Use
  22934. the Acorn Font Editor and David Pilling’s D2Font Drawfile to font
  22935. converter which is on the same disk as his Trace program (now available
  22936. through Archive for £6). You will end up with a new outline font which
  22937. can be used within Impression just like any other font and which can be
  22938. used within a style and assigned to a function key to turn it on and
  22939. off. If anyone has the time to do this, please would they send Archive a
  22940. copy of the resulting font for the magazine disk? − RS.
  22941. 5.6
  22942. • Find within a group of frames − If the currently selected frame is a
  22943. group of frames then the <find text> menu option is unavailable. To make
  22944. it available, select a frame that does not contain a group and which
  22945. contains at least one letter, (or create such a frame and text character
  22946. if necessary). Then, to find or replace throughout the document
  22947. (including all grouped frames), turn on the <whole document> button in
  22948. the <find> dialogue box, and use find or replace as normal. − SK.
  22949.  
  22950. Hints and Tips
  22951. 5.7
  22952. •   A5000 floppy drive problems − There have been a number of comments in
  22953. Archive about the slowness of the A5000’s floppy drive. Could this be
  22954. due to a bug which RISC-OS 3 has with the ADFS buffers. There was a note
  22955. with my machine when it was delivered saying that the ADFS Buffers
  22956. should be configured to zero due to a bug which causes occasional data
  22957. errors. Configuring thus makes the floppy drive incredibly slow during
  22958. copy operations with a track access taking more than 2 seconds. I
  22959. preferred to have the speed and I spoke to Peter Dunn of Acorn at an
  22960. Open Day in Glasgow recently who told me that the adfs buffers problem
  22961. had only appeared with the Acorn DTP and that it shouldn’t be a problem
  22962. with other programs like Impression. Indeed they had their A5000s
  22963. configured with ADFS Buffers set to 16k so I copied them.
  22964. 5.7
  22965. Then just the other day, Impression 2.16 dropped through my letter box.
  22966. A couple of days later, I had two relatively complex newsletters to
  22967. typeset. The first crashed during a save operation, losing most of the
  22968. text. I thought ‘That will teach me to make back-up copies in future.’ I
  22969. remade the document successfully. The next job was done with two copies
  22970. on the hard disk, a main and a back-up. The main would auto-save and I
  22971. would make a back-up by adding a ‘b’ to the filename. Well into this
  22972. job, it crashed. Both copies were corrupted, so I gave up and returned
  22973. to version 2.14f. No further problems. A word with Computer Concepts and
  22974. they suggested that I return the ADFSbuffers to zero.
  22975. 5.7
  22976. I’d be interested to hear if other A5000 and Impression users have had
  22977. similar or other experiences with their setup.  David Woods, Glasgow
  22978. 5.7
  22979. •   ArcDFS and !65Host − If you try to use ArcDFS with the 6502 emulator,
  22980. you may get a “Bad DFS emulation” error. John Fletcher of Dabs Press
  22981. says: “This is because the manual does not fully explain how to use
  22982. ArcDFS with the emulator. The way to access a DFS disc, is not to type
  22983. *DISC, but to type: *Dir dfs::<drive number>. You should also change
  22984. drive using the above command instead of *Drive.”  P Northing, Sheffield
  22985. 5.7
  22986. •   Bringing windows to the front − To move a window to the front, you
  22987. must click on its title bar. This often involves moving other windows to
  22988. get to it. However, I have just discovered that clicking on the window’s
  22989. adjust size icon (bottom right) also brings the window to the front.
  22990. This ‘obvious’ hint may help prevent too much window shuffling!  R
  22991. House, Andover
  22992. 5.7
  22993. •   Canon Bubblejets BJ300 & BJ330 − There are some undocumented features
  22994. on these machines that make cleaning and changing ink cartridges a bit
  22995. easier. The normal cleaning cycle is started by pressing the shift then
  22996. the cleaning keys. An extended cycle is started by pressing shift then
  22997. pressing and holding cleaning and then pressing shift again.
  22998. 5.7
  22999. There is a function called reference aging which sprays ink all over the
  23000. printed area of the paper. Be warned though that this uses a lot of ink
  23001. and the ink is very difficult to remove from hands, etc so have a poly-
  23002. bag handy to pop the sheet in!! The sequence can be stopped by turning
  23003. the printer mains off. Press shift then press and hold cleaning and then
  23004. press card and paper together and release cleaning.
  23005. 5.7
  23006. I’ve been using “Report” photocopier paper in my BJ300 and the print
  23007. quality is superb.  Ned Abell, Kidderminster
  23008. 5.7
  23009. • Changing the file allocation of a hard Disk − My A410/1 is equipped
  23010. with an internal 40M ST506 hard disk (NEC). Recently I added an external
  23011. SCSI hard disk (cached Morley “Cheetah”, 100M, fitted with a Rodime
  23012. R3000 disk). When I compared those two drives, I made some very
  23013. unexpected discoveries.
  23014. 5.7
  23015. I copied the entire content of the internal disk (39M) to the new drive,
  23016. because I wanted to soak test the old disk. To my amazement the SCSI
  23017. “free” window showed that I had already used up no less than 62M of
  23018. space! I phoned the (very friendly and competent) Morley help line, and
  23019. they told me that larger drives usually were formatted differently from
  23020. small ones (with larger blocks), because this improved their speed
  23021. performance.
  23022. 5.7
  23023. They advised me that if the extra space was more important to me than
  23024. speed, I should use the formatter on the Morley support disk to alter
  23025. the size of allocated blocks. I fiddled around with this application and
  23026. found that it is indeed possible to change the space needed for a file
  23027. quite considerably; in the configuration that I finally chose, the 39M
  23028. from my old disk actually occupied slightly less space − below 38M!
  23029. 5.7
  23030. What is more, the speed tester showed a slightly worse performance, but
  23031. any improvised speed tests I did myself (like copying 3M of files from
  23032. RAM disk to hard disk and back) showed these differences to be quite
  23033. negligible.
  23034. 5.7
  23035. So: If you buy a new (second) hard disk, it might be a good idea to
  23036. check how it administrates data, before you do any serious work with
  23037. it!  Jochen Konietzko, Köln, Germany
  23038. 5.7
  23039. •   DFS reader and A5000 − When the DFS reader (Shareware 31) is run on
  23040. the A5000, it fails with “Unknown or missing variable at or about line
  23041. 260”. This can be cured by adding the following line:
  23042. 5.7
  23043. 215 large% = TRUE : full% = TRUE
  23044. 5.7
  23045. M Pullin, Cheltenham.
  23046. 5.7
  23047. •   Econet interface faults − We had a big mains spike that ‘took out’
  23048. twelve BBC B Econet interfaces. At first, the Masters and Archimedes
  23049. machines seemed OK but further investigation proved otherwise. The
  23050. findings may prove useful to others.
  23051. 5.7
  23052. There are two types of Acorn Econet cards, (plus the XOB one) an old one
  23053. and a newer one. All the machines with the old type of cards seemed fine
  23054. after the spike but none of the newer ones worked! Our first thought was
  23055. that they were zapped by the spike. However, on closer examination, when
  23056. we disconnected the old type machines from the network, the ones with
  23057. the newer type card started to work. Looks like some of the old type
  23058. cards are faulty but still working. The old style cards definitely seem
  23059. more fault tolerant than the new ones! A faulty old style card can still
  23060. work but it will stop other machines with the new style cards from
  23061. working!  Dave Leckie, Fort William.
  23062. 5.7
  23063. •   HP Deskjet 500 & RISC-OS 3 − Here is a tip about the RISC-OS3 printer
  23064. drivers and the HP Deskjet 500. The graphics margins given in the HP
  23065. configuration for the A4 (Generic Deskjet) are a bit conservative.
  23066. 5.7
  23067.    Top − 12.5mm
  23068. 5.7
  23069.    Bottom − 19.9mm
  23070. 5.7
  23071.    Left − 5.0mm
  23072. 5.7
  23073.    Right − 7.0mm
  23074. 5.7
  23075. From the manual and from my own experiences of using the printer and
  23076. seeing where it can print to, I have come up with new values which are:-
  23077. 5.7
  23078.    Top − 1.5mm
  23079. 5.7
  23080.    Bottom − 10.5mm
  23081. 5.7
  23082.    Left − 3.2mm
  23083. 5.7
  23084.    Right − 3.2mm
  23085. 5.7
  23086. I have used these values very successfully ever since I got the machine.
  23087. The RISC-OS 2 printer driver for the Laserjet/Deskjet has problems when
  23088. it has different values for top and bottom margins because it prints out
  23089. in landscape mode in the opposite direction to the way the margins have
  23090. been set. i.e. it prints out last, the part of the sheet which is shown
  23091. by the print borders to be the top! RISC-OS 3 has sorted this out
  23092. allowing the maximum printing area to be available. It can be very
  23093. important when using Impression’s ‘fit lots’ facility to reduce pages to
  23094. have as much room as possible as margins are reduced as well.  David
  23095. Woods, Glasgow
  23096. 5.7
  23097. •   Paper for inkjets − I too have had much trouble obtaining good paper
  23098. for my HP Deskjet 500. The manual recommends photocopy paper and that
  23099. you should use the paper’s correct side (as marked by the arrow on the
  23100. end of the packet). I have found photocopy paper to be poor no matter
  23101. what side I try. The results usually come out ‘furry’ where the
  23102. absorbency of the paper has caused the ink to creep by capillary action.
  23103. Prior to the type of ink sold by Hewlett Packard being changed to a more
  23104. permanent one, some photocopy paper gave white patches within areas of
  23105. black which I think was due to a degree of waxiness repelling the ink
  23106. from spots but this phenomenon happens no more.
  23107. 5.7
  23108. (Acorn Inkjet owners can also benefit by using the HP DJ 500 cartridges
  23109. as they are the same fitting. Ed.)
  23110. 5.7
  23111. The new ink seems to give good results with some types of paper but
  23112. rather ‘furry’ with others. Interestingly, I found that Croxley Script
  23113. 80gsm, similar to that mentioned by Paul Bamberger in Archive to be very
  23114. poor. I have settled on two paper types for ‘cheap and good’ and
  23115. ‘expensive and excellent’ printouts. The cheaper paper is ‘Plus Fabric
  23116. 70gsm’ from Empire Fine Papers at about £7.50 for 500 sheets. This gives
  23117. consistently sharp, even results although it does wrinkle if there are
  23118. large printed dark areas.
  23119. 5.7
  23120. For printouts intended for further copying by a photocopier or at a
  23121. printing company (or for making letterheads for small businesses) I have
  23122. found that a type of paper generally described as ‘laid’ paper,
  23123. available in various brands, is excellent, costing about £15 a box. It
  23124. is smooth on one side and has a fine, ribbed pattern on the other. Both
  23125. sides accept ink very well and you often see the paper used for
  23126. prestigious company printed letterheads. I have used both ‘GB Classic,
  23127. White Laid, 100gsm’ and ‘Conqueror, High White Laid, 100 gsm’.  David
  23128. Woods, Glasgow
  23129. 5.7
  23130. • Printing on labels or A3 paper − Most RISC-OS printer drivers have
  23131. difficulty with anything other than A4 paper. Although they have a page
  23132. length setting, they do not tell the printer the page length to expect,
  23133. so the printer still assumes that it has 11“ or A4 size paper (usually
  23134. determined by a DIP switch). This is fine when printing on individual
  23135. sheets or when using a sheet feeder to feed labels or envelopes but it
  23136. causes serious problems with tractor feed labels or with A3 paper.
  23137. Imagine printing on 1” tractor feed labels from Impression. The
  23138. Impression master page must be defined to be 1“ length and, similarly,
  23139. the printer driver’s page length must be set to 1”. The first label is
  23140. printed and the printer driver sends a form feed character telling the
  23141. printer to advance to the next form (page). Unfortunately, the printer
  23142. driver assumes that it is using 11“ paper and feeds over the next 10
  23143. labels, simply because the printer driver did not define the printer’s
  23144. page length. Similarly, printing on A3 paper (using a Canon BJ330 for
  23145. example) fails because the printer thinks it is using A4 paper. The
  23146. solution is for the printer driver to pass on the page length setting to
  23147. the printer and this is a very simple change for Acorn to make.
  23148. Meanwhile, it is necessary to modify the page start and end strings
  23149. manually. With RISC-OS 2 drivers this can be difficult, but with RISC-OS
  23150. 3 the printer driver editor allows it.
  23151. 5.7
  23152. With an Epson compatible printer, the page length can be defined by
  23153. putting ESC,“C”,n in the page start string, where n is the page length
  23154. in lines (1/6“ per line). With an IBM compatible printer, an extra
  23155. ESC,“2” is needed on the end. Furthermore, it is sometimes necessary to
  23156. change the page end string which is often set to perform a printer reset
  23157. (ESC,“@” on Epson printers) after every page − this should be removed
  23158. completely. Note that these changes must be applied for each resolution
  23159. setting that is to be used and that a new printer driver file should be
  23160. saved with its name and type set appropriately to indicate that it is a
  23161. different version for a special page size.   Paul Skirrow, Ipswich
  23162. 5.7
  23163. (Acorn are aware of the problem and have found at least a partial
  23164. solution − see the comments below, page 9. Ed.)
  23165. 5.7
  23166. •   Mandelbrot bakeware − I have written a short PROC to improve Basil’s
  23167. Mandelbrot program (Archive 5.6 p57):
  23168. 5.7
  23169. DEFPROCdebug
  23170. 5.7
  23171. WHILE flour=flour+weevils
  23172. 5.7
  23173.   REPEAT
  23174. 5.7
  23175.     GETweevil
  23176. 5.7
  23177.     BPUT# weevil ON blockA%
  23178. 5.7
  23179.     BEAT blockB%
  23180. 5.7
  23181.   UNTIL dead%=TRUE
  23182. 5.7
  23183.   weevils-=1
  23184. 5.7
  23185. ENDWHILE
  23186. 5.7
  23187. ENDPROC
  23188. 5.7
  23189. The variable declaration: Mouth_Open=FALSE is the best I’ve seen so far!
  23190. I have another for anyone who typed the program in:
  23191. 5.7
  23192. Egg_on_face=TRUE.
  23193. 5.7
  23194. Joseph Seelig, Harrow.
  23195. 5.7
  23196. •   Ten tips for larger memories − The article on better use of available
  23197. memory (Archive 4.6 p52) set me thinking and here’s a tip for those of
  23198. us who don’t have a hard disc. I have 4M in a 310, two 3½“ internal
  23199. floppies and an external 5¼” drive.
  23200. 5.7
  23201. If you look at what you use your computer for, it breaks down into a few
  23202. task areas as well as playing games. I create a Task disk for each
  23203. activity and that sits in the 5¼“ drive and I have one each for DTP,
  23204. business and drawing. Each disc has !System, different !Fonts and the
  23205. appropriate applications that I can cram on using !Compression.
  23206. 5.7
  23207. Each task disc has two Obey type files called !boot and startlist to get
  23208. everything up and running and here I put in a plug for the excellent
  23209. !DeskEdit utility from Beebug which allows even me to get this working
  23210. quickly.
  23211. 5.7
  23212. Let’s look at the business Task disc which is called “LrgeBus1”.
  23213. 5.7
  23214. The !boot obey file consists of one line...
  23215. 5.7
  23216. Desktop-File adfs::LrgeBus1.$ .startlist
  23217. 5.7
  23218. and clicking on this runs the second file called startlist. As you
  23219. probably know, if this Task disc were in drive 0 it could be set to auto
  23220. start each time the computer was turned on, by setting the disc to *OPT
  23221. 4,3 and the computer to *Configure Boot.
  23222. 5.7
  23223. The second obey file called startlist sets up the essential tasks that
  23224. you will need but some of these are squeezed on the disc under the
  23225. !Compression filing system. If you specify “cfs#adfs” as a filing system
  23226. to get them to load, the computer throws a wobbly so I set up two
  23227. aliases as the first lines of startlist.
  23228. 5.7
  23229. Set Neds$Dir adfs::LrgeBus1.$
  23230. 5.7
  23231. and
  23232. 5.7
  23233. Set NedsCFS$Dir cfs#adfs:: LrgeBus1.$
  23234. 5.7
  23235. you can then get the computer to find the bits you want by using:
  23236. 5.7
  23237. <Neds$Dir>.!System
  23238. 5.7
  23239. and to load various fixes found in the system modules directory into
  23240. memory like..
  23241. 5.7
  23242. RMLoad<Neds$Dir>.!System.
  23243. 5.7
  23244. modules.WimpUtils
  23245. 5.7
  23246. and then to get !Compression up and running
  23247. 5.7
  23248. <Ned$Dir>.!CFS
  23249. 5.7
  23250. Now a word about !Fonts. I use Swiss as my main business font. You need
  23251. to edit the run file of !Fonts and put in a “desktop” command at the end
  23252. after “FontCat”or it will stop and ask you to press space. I also tailor
  23253. the run file after the line “Echo Font Manager 2.42 installed.” with the
  23254. lines
  23255. 5.7
  23256. Echo Neds Business Fonts now available:
  23257. 5.7
  23258. Echo
  23259. 5.7
  23260. because I like to personalise things!!
  23261. 5.7
  23262. Back in startlist, we can now run...
  23263. 5.7
  23264. <NedsCFS$Dir>.!Fonts
  23265. 5.7
  23266. which are compressed and then in a compressed directory called resources
  23267. 5.7
  23268. <NedsCFS$Dir>.resources.
  23269. 5.7
  23270. !PrinterDM
  23271. 5.7
  23272. <NedsCFS$Dir>.resources.!Alarm
  23273. 5.7
  23274. and anything else you need and the last line is
  23275. 5.7
  23276. desktop
  23277. 5.7
  23278. The whole process is very easy to achieve and each task disc can be
  23279. tailored. The drawback is that its a bit on the slow side and all my
  23280. fonts have to be uncompressed before I use them but I do set a large
  23281. Fontsize.  Ned Abell, Kidderminster
  23282. 5.7
  23283. • Transferring PC files with the Emulator − It is true that the multi-
  23284. tasking PC Emulator does prevent access to the PC hard disc partition
  23285. while it is running and it is therefore necessary to quit the emulator
  23286. before a file created by a PC program can be read in RISC-OS. This is
  23287. because RISC-OS does not know whether the PC hard disc partition is in a
  23288. valid state or not (i.e. a PC program may be writing to an open file).
  23289. However, it is possible to transfer files between RISC-OS and the PC
  23290. emulator by using floppy discs. After the PC has written a file to the
  23291. floppy it may be necessary to dismount the floppy disc (using the menu
  23292. item) and re-open it by clicking on the floppy icon to make RISC-OS read
  23293. the directory again (otherwise it may not realise that it has been
  23294. changed). This works with RISC-OS 3, but should also work with any of
  23295. the various PC disc readers.  Paul Skirrow, Ipswich
  23296. 5.7
  23297. •   Watford mouse − If you need to replace the plug on a Watford mouse
  23298. (old version) my experience may be useful. The original plug is moulded
  23299. onto the cable, and it took careful dismantling with a sharp knife to
  23300. discover where each wire went.
  23301. 5.7
  23302. I purchased the replacement plug from Maplin Electronics (code JX19V
  23303. 0.82p, page 177). This plug has three disadvantages; firstly it has no
  23304. cable strain relief, so you must be sure of your wiring, secondly, it is
  23305. extremely difficult to disassemble and thirdly you need to shave a small
  23306. amount from the front to fit it into the socket of an A310. (I don’t
  23307. think it would fit too well on an A3000!) The wire colours are as
  23308. follows (functions as on p469 of the A310 User Guide):  
  23309. 5.7
  23310.  Pin   Function   Colour
  23311. 5.7
  23312. 1   X Reference      white
  23313. 5.7
  23314. 2   Switch 1      yellow
  23315. 5.7
  23316. 3   Switch 2      red
  23317. 5.7
  23318. 4   0V return      brown
  23319. 5.7
  23320. 5   X Direction      green
  23321. 5.7
  23322. 6   5V supply      black
  23323. 5.7
  23324. 7   Y Reference      blue
  23325. 5.7
  23326. 8   Switch 3      orange
  23327. 5.7
  23328. 9   Y Direction      purple
  23329. 5.7
  23330. M Angove, Caerphilly
  23331. 5.7
  23332. •   Wonderland on SCSI − I’ve managed to get Wonderland to work on SCSI.
  23333. What you do is:-
  23334. 5.7
  23335. Obtain the SCSI “fix”, which Archive will supply if you send them a
  23336. charity donation (minimum £2). However, it’s also on this month’s
  23337. program disc.
  23338. 5.7
  23339. Run the INSTALL program on the “fix” disk, using the “fix” disk when
  23340. asked for disk “ONE”, then the original disk “TWO”, “THREE” and “FOUR”.
  23341. 5.7
  23342. When the installation is complete, use !Edit to modify the “win”
  23343. application code. Look for the second occurrence of the text “adfs” and
  23344. replace it with “scsi”. (If you replace the first one, it all seems to
  23345. work until you save or restore a game position.)
  23346. 5.7
  23347. To get it to work on SCSI with 1M memory you need to unplug more modules
  23348. than you would with ADFS, because SCSI, SCSIFiler and SCSIDirCache take
  23349. up some space. I find that I need to unplug:− Debugger, Draw, EcoNet,
  23350. FontManager, IIC, NetFS, NetPrint, NetStatus, PaletteUtil, Percussion,
  23351. RAMFS, RAMFSFiler, ShellCLI, SoundChannels, SoundDMA, SoundScheduler,
  23352. StringLib, SystemDevices, WaveSynth.
  23353. 5.7
  23354. Mike Williams, London N16.
  23355. 5.7
  23356. The following hints and tips are taken from the February Acorn Customer
  23357. Services Newsletter.
  23358. 5.7
  23359. •   RISC-OS 2 printer drivers
  23360. 5.7
  23361. 1) We have had reports of the release 2 printer drivers producing the
  23362. following error message:
  23363. 5.7
  23364.    “Invalid number of output bits”
  23365. 5.7
  23366. This error is produced when you attempt to print a sprite that was
  23367. created in a 256 colour screen mode such as MODE 15 in a 16 colour mode
  23368. such as MODE 12. The solution to the problem is to print in MODE 15 if
  23369. this error occurs, or to print the sprite in the mode in which it was
  23370. created.
  23371. 5.7
  23372. 2) When attempting to load any of the many RISC-OS 2 desktop printer
  23373. drivers the following error message may be displayed:    “Filing
  23374. System or path ‘Printer:’ not present internal error xxxx”
  23375. 5.7
  23376. The error is caused by one of the printer driver support modules
  23377. becoming unplugged from the operating system. To resolve the problem,
  23378. the first action to take is to find out which modules are unplugged.
  23379. This information can be found by typing the following command from the
  23380. command line:
  23381. 5.7
  23382. *UNPLUG
  23383. 5.7
  23384. It is then necessary to re-insert the modules that *UNPLUG has shown as
  23385. being unplugged with the following command:
  23386. 5.7
  23387. *RMREINIT <ModuleName>
  23388. 5.7
  23389. Once you have used *RMREINIT to re-initialise all the modules, you
  23390. should then perform a <ctrl-break> to ensure all the modules have
  23391. started correctly.
  23392. 5.7
  23393. 3) Printing labels on small page lengths can sometimes cause problems.
  23394. 5.7
  23395. a) !PrinterDM (2.46) reads a system variable called PDriver$DMExtra at
  23396. the start of each print job and sends it to the printer before the
  23397. actual data stream. PDriver$DMExtra has to be set using GSTrans format
  23398. so, to set a page length of nine lines, you would use:
  23399. 5.7
  23400. *SET PDriver$DMExtra |[C|I
  23401. 5.7
  23402. You would use |[C|J for ten lines and |[C|K for eleven lines and so on.
  23403. This command can be executed explicitly from the command line (after
  23404. !PrinterDM has been loaded) or incorporated in the !Run file.
  23405. 5.7
  23406. b) Set the (Graphics) clip window to the appropriate size from
  23407. !PrinterDM’s icon bar menu. If the stationery is continuous, you can
  23408. leave the top and bottom graphics margins set to zero.
  23409. 5.7
  23410. c) Finally, you need to tell the Wordprocessor you are using, the page
  23411. size of each label.
  23412. 5.7
  23413. •   RISC-OS 3 printer drivers − Loading RISC-OS 2 printer drivers into
  23414. Acorn A5000s with RISC-OS 3 can cause problems if an attempt is then
  23415. made to load the RISC-OS 3 !Printers application from the Applications 1
  23416. disc or directory if stored on the hard disc.
  23417. 5.7
  23418. !Printers will report the error “!Printers requires PDriver 3.16 or
  23419. later”.
  23420. 5.7
  23421. The error occurs because the RISC-OS 2 printer driver loads an older
  23422. PDriver module than 3.16. The solution to the problem is to type from
  23423. the command line.
  23424. 5.7
  23425. *RMKILL PDriver
  23426. 5.7
  23427. *RMREINIT PDriver
  23428. 5.7
  23429. This will allow you to load the new !Printer application supplied with
  23430. RISC-OS 3 on the A5000.
  23431. 5.7
  23432. •   Maestro − Version 1.75 has a problem where notes are displayed at
  23433. double-height in certain modes. This may be fixed in the field by
  23434. deleting or renaming the sprites22 and !sprites 22 files.
  23435. 5.7
  23436. •   PC Emulator hints & tips
  23437. 5.7
  23438. 1) Deleting an unformatted or non-system PC Emulator hard disc partition
  23439. on an A5000.
  23440. 5.7
  23441. RISC-OS 3 looks at the PC hard disc partition (DOSDisc, &FC8) as if it
  23442. were a filing system and therefore before it will delete the partition,
  23443. it must look inside to find out what files are there. To be able to
  23444. delete an unformatted partition it is necessary to fool the operating
  23445. system into believing that it is not a PC partition, by changing its
  23446. filetype. However, it is not possible to change its filetype from within
  23447. the desktop and the following information gives details of how to change
  23448. the filetype from outside the desktop. The file can then either be
  23449. deleted from the command line as shown below or from the desktop.
  23450. 5.7
  23451. a) Press <F12> from the desktop to get the command line (*Prompt)
  23452. 5.7
  23453. b) Type:
  23454. 5.7
  23455. *SETTYPE ADFS::4.$.PC.Drive_C TEXT <return>
  23456. 5.7
  23457. *DELETE ADFS::4.$.PC.DRIVE_C <return>
  23458. 5.7
  23459. 2) The Archimedes keyboard has a U.S. style PC layout. You should not
  23460. therefore use KEYBUK or KEYB UK in the Autoexec batch file. Also, the £
  23461. sign on an Archimedes keyboard doesn’t exist on a PC keyboard, so to get
  23462. a £ sign you will need to enter its ASCII code 156:
  23463. 5.7
  23464. Under the emulator, hold down the ALT key and type 1 5 6 on the numeric
  23465. keypad. (Remember to have Num Lock on).
  23466. 5.7
  23467. 3) Configuration − ‘Startup Text’ − The startup text is only intended
  23468. for use with a hard disc partition, not for floppy based systems. The
  23469. problem is that the first characters of the startup text are lost
  23470. because they are taken as a reply to the ‘Insert DOS Boot Disc and press
  23471. any key’ message which you get when running the emulator from floppy
  23472. discs.
  23473. 5.7
  23474. The startup text should also not be used unless you have an Autoexec.Bat
  23475. and Config.Sys file. If you do not have these, the startup text is taken
  23476. as a reply to confirming the date.
  23477. 5.7
  23478. 4) PC Software compatibility − there are some screen redraw problems
  23479. with WordStar 4 using the !PCEmS emulator. However, no problems have yet
  23480. been reported using the large !PCEm emulator.  A
  23481. 5.7
  23482. 5.7
  23483.  
  23484.  
  23485.  
  23486. Impression Hints & Tips
  23487. 5.7
  23488. There’s no shortage of hints and tips this month and there is a special
  23489. emphasis on mail merging, printing and uses of Impression’s “save
  23490. graphics” facility.
  23491. 5.7
  23492. •    Mailmerge (1) − There have been some queries about mail merging
  23493. with Impression, so Rob Sherratt contacted Computer Concepts to outline
  23494. the problems. Rob wrote, “I have tried to use the Business Supplement
  23495. (Importer) and Impression to mailmerge a set of addresses to generate a
  23496. sheet of laser labels where each label contains successive fields from
  23497. the database. I have come to the conclusion that it can’t be done at
  23498. present − unless you tell me otherwise! I can print, say, a sheet of 24
  23499. labels for the same addressee (using a variety of methods) − but I
  23500. cannot print 24 labels for different addressees unless I enter the data
  23501. manually. Isn’t this a normal requirement for mailmerge programs?
  23502. 5.7
  23503. “It seems to me that Impulse’s ‘Merge’ command causes Impression to do a
  23504. ‘Delete then merge’ operation, coupled with a small change to Importer’s
  23505. user interface to toggle the ‘Delete vs Duplicate’ option on and off. As
  23506. well as, or instead of this, you might like to consider adding a new
  23507. pair of methods to Importer – :Importer Next record and :Importer
  23508. PrevRecord – which would allow the user to build a composite ‘24-up’
  23509. merge template where each frame in the template might contain the
  23510. following merge commands;
  23511. 5.7
  23512.    :Importer Getfield 1
  23513. 5.7
  23514.    :Importer Getfield 2 etc
  23515. 5.7
  23516.    :Importer Next Record
  23517. 5.7
  23518. On receiving the Next Record message, the Importer application would
  23519. reset its field counter to 1 and would scan forward for the start of the
  23520. next record.”
  23521. 5.7
  23522. Charles Moir agreed that !Importer would not allow different names and
  23523. addresses to be imported into different frames and thought that Rob’s
  23524. new command to move onto the next record would work, but again that’s
  23525. another improvement that will have to wait for Impression 3 (if that is
  23526. the correct title!).
  23527. 5.7
  23528. However, Charles did have this useful suggestion, “whenever we have had
  23529. a requirement to produce labels in this fashion (e.g. for mailing the
  23530. Archimedean magazine) we have gone about it in a different, and I would
  23531. suggest, a simpler way. First we create a master page that has separate
  23532. frames for each label. These are then linked together so they all form
  23533. part of one flowing story, so text will flow from one frame to another.
  23534. Presuming you have the name and address list in ASCII form with some
  23535. identifier between records − all you do is drop the file into the first
  23536. frame. All the names and addresses then flow into successive frames,
  23537. creating new pages as required. If the names and address are fixed
  23538. length records it is only a matter of making sure the label is the
  23539. correct size to hold exactly one record and it should all format
  23540. correctly. Even if the records are not the same length all that is
  23541. required is a single search and replace operation to replace the record
  23542. separator with a
  23543. 5.7
  23544.  command to make sure each new record starts in a new label.
  23545. 5.7
  23546. (If you use label sheets that have no selvedge, i.e. the whole A4 page
  23547. is divided into exactly 24 equal spaces, you just create one simple
  23548. master page whose size is just 70mm × 37.1mm. Then all you do is ensure
  23549. you have “ignore page borders” set and “fit lots” and it prints
  23550. beautifully. Ed.)
  23551. 5.7
  23552. “The only disadvantage of this system is that it loads all the names and
  23553. addresses in one go. However, we use this system for mailing 10,000
  23554. names and addresses on a standard 4M machine and so space is not a
  23555. problem. In fact, I don’t think something like !Importer would cope with
  23556. anything like that number of records satisfactorily. This method has the
  23557. advantage that you can see and edit each record individually if
  23558. required, and you can print any required range of pages or multiple
  23559. copies, etc.”
  23560. 5.7
  23561. •    Mailmerge (2) − Stuart Bell had more modest needs. He wanted to
  23562. send a basic letter with a customized “Dear ...” beginning, and an
  23563. address in a box at the bottom of each letter. His solution to create
  23564. the skeleton letter as a master page <ctrl-F2 − Edit − New Master Page>.
  23565. In this master page type everything, except the names for the salutation
  23566. (the “Dear . . .” bit). Then create two frames on the master page, one
  23567. for the name, the other for the address box, and make text flow from one
  23568. to the other.
  23569. 5.7
  23570. Now, leave the editing of the master page and return to your document.
  23571. Alter the chapter so that your newly created master page is the one for
  23572. that chapter and you will see your letter appear, with boxes for the
  23573. name and address. Type in the name of the first person, and their
  23574. address, using <ctrl-G> to advance to the next frame, as required.
  23575. Impression will generate new pages as necessary, each containing the
  23576. same letter.
  23577. 5.7
  23578. In order to make the salutation look neat, you may need to move the
  23579. ‘name’ frame on the master page, to line up “Dear” with the name. Check
  23580. this with a large scale view of your document.
  23581. 5.7
  23582. Now, the whole point of a mailing list is not to send one letter, but to
  23583. make it easier the next time you write to the same people. To change
  23584. your letter, save the original document under another name – e.g. if
  23585. originally “Letter1”, save it now as “Letter2” to avoid losing the
  23586. original letter. Then simply change the letter on the master page of
  23587. Letter2 to produce your new letter. Alternatively, create another new
  23588. master page and alter your chapter to use it.
  23589. 5.7
  23590. To produce a simple listing of your mailing list, create a master page
  23591. with many frames stacked in a vertical line (or any other close pattern
  23592. for that matter). You will then have a simple list of the names and
  23593. addresses in a tabular form.
  23594. 5.7
  23595. I know that most mailmerge packages offer more complex facilities than
  23596. this penny-pinching approach, such as selecting certain names out of a
  23597. list. However, if your needs are as basic as mine, then it certainly
  23598. beats the laborious task of producing twenty (or two hundred) virtually
  23599. identical letters manually!
  23600. 5.7
  23601. • A merge program? − On a related note, identical pleas from Peter
  23602. Blenkinsop and P Closier: “has anyone written a merge program for
  23603. Impression?” Peter has several two page documents he would like to merge
  23604. into one (longer) document, mainly for ease of printing, although he
  23605. admits that a printer queue system might do just as well. No doubt other
  23606. users would also find this useful, so has anyone cracked this particular
  23607. nut? Batch printing would undoubtedly be useful for the next release of
  23608. Impression (with perhaps the incoming document forming a new chapter),
  23609. but we do also need a proper printer queueing system for Acorn printer
  23610. drivers. (Laser Direct owners already have one. Ed)
  23611. 5.7
  23612. • Viewing clip art – Impression’s ease of manipulating and printing
  23613. Sprite and Draw files has been touched on by others but the following
  23614. may be of interest. Just as with fonts, one really needs to see a print-
  23615. out of one’s collection of clip-art files in order to pick out the one
  23616. that’s just right for a particular job. I have done this by setting up
  23617. my collection on a set of standard Impression pages laid out with 5 rows
  23618. of 4 frames, each frame filled with a clip-art object. The sheets when
  23619. printed out then provide a ready reference and can be saved economically
  23620. as Impression documents using ArcFS/Spark/Compression.
  23621. 5.7
  23622. The beauty of this is that in future you can ignore the individual clip-
  23623. art files and work from the saved Impression document. You choose the
  23624. frame you want and save it as a graphic to the RAM disc. Then drag the
  23625. icon from RAMFS to the Impression frame you have set up to receive it.
  23626. Note that you have to use the RAM disc as an intermediate stage for the
  23627. transfer. If you drag the icon directly across to the new Impression
  23628. frame you get a message to the effect that Impression cannot save a file
  23629. to itself. (Jack Evans)
  23630. 5.7
  23631. Don’t forget though that there are a number of commercial programs that
  23632. allow you to view clip art and these might be more useful if you are
  23633. constantly adding new images to your collection. Incidentally, an
  23634. earlier version of Glimpse (Sherston Software) used to hang up the
  23635. computer if presented with a DrawPlus file. I am glad to report that
  23636. this was fixed (v1.02 and later) and, although the program ignores
  23637. unknown file types, it will not cause any other problems. If you have an
  23638. early issue of Glimpse, Sherston advise you to call them for advice and
  23639. they tell me that they are further developing the program.
  23640. 5.7
  23641. • Taking graphics from documents – Paul Skirrow writes in response to
  23642. the Impression Hints & Tips by Jochen Konietzko (Archive 5.5 page 41)
  23643. and also makes use of the save graphics facility. It is true that
  23644. graphics cannot be edited within Impression, but it is a simple matter
  23645. to click on the graphic frame to select it and then use the <save
  23646. graphic> option on the document menu (or use <shift-ctrl-T>). I rarely
  23647. bother keeping separate copies of graphics files now, I just save them
  23648. from Impression directly into Draw, modify them and then save them back
  23649. again. (With PipeDream, things are different as it does not take its own
  23650. copy of the graphics file, but simply stores the filename, so modifying
  23651. the file on disc will change the image in the PipeDream document.)
  23652. 5.7
  23653. It is true that the draw files are stored within the document directory
  23654. (called story1, story2, etc), but they should not be edited because
  23655. Impression stores information about them elsewhere (in the !DocData
  23656. file). It is possible to crash the entire system by modifying a graphics
  23657. file within an Impression document. I have always regarded Impression
  23658. documents as no-go areas − they belong to Impression and use Computer
  23659. Concepts’ own format which is not published and which could be changed
  23660. between Impression versions.
  23661. 5.7
  23662. The only disadvantage with using the <save graphic> option is that it
  23663. always saves the graphic as a draw file, even if it is a sprite. If you
  23664. want to edit a sprite, you must therefore drag the draw file from
  23665. Impression to Draw, select the object and then use the <save sprite>
  23666. option on the save menu to save into Paint. This is clumsy, especially
  23667. if memory is short, in which case you will have to save the intermediate
  23668. files to disc before loading into Paint. Computer Concepts do this
  23669. mainly to simplify the inner working of Impression (it means everything
  23670. can be regarded as a Draw file which may contain sprites). Another
  23671. argument for using Draw files to hold sprites is that they contain
  23672. absolute size information, whereas the sprite format does not. It
  23673. therefore makes a lot of sense for scanners to produce Draw files
  23674. containing the scanned sprite together with absolute size information
  23675. describing the resolution of the scanned image. The <save graphic> menu
  23676. item only appears when a graphic frame is selected (whereas the RISC-OS
  23677. guidelines suggest that unavailable menu items should be shaded so that
  23678. the user knows they are there).
  23679. 5.7
  23680. Could Impression be made to pass graphics files to Draw and Paint when
  23681. they are double clicked? Perhaps Computer Concepts would be prepared to
  23682. implement this. I also think that there should be an easy way of
  23683. transferring data between applications generally without bringing up a
  23684. save menu. I know that we are all used to it now, but it is not really a
  23685. “save” operation that you are doing when transferring things between
  23686. applications, and the filename is certainly irrelevant when you are not
  23687. saving to a filer window. One approach, adopted by Squirrel, is to make
  23688. a click-drag from a Squirrel window to another application transfer the
  23689. data by doing a save automatically. This is extremely useful in Squirrel
  23690. and means that an address can be transferred to a letter very quickly
  23691. without using a menu. I have also adopted this technique in some of my
  23692. programs where <click-drag> is not used for something else, but
  23693. unfortunately, many programs use <click-drag> for their own operation.
  23694. What do other people think? Could we standardise on a <shift-drag> or
  23695. <alt-drag> to do a save. (This would also work with filer windows using
  23696. the default or last filename).
  23697. 5.7
  23698. •   Styles used and unused − When I am preparing the magazine, I use one
  23699. big file that contains all the things like hints & tips, comments, small
  23700. ads, products, etc, so I am forever importing new bits of text into it
  23701. and then exporting them back out into the magazine. This means that the
  23702. style list grows longer each month so, every now and then, I remove
  23703. unwanted styles. To do this, I select the whole text with <ctrl-T> and
  23704. pull up the edit styles window with <ctrl-F6>. I click on the style
  23705. selection menu button and there is a list showing which styles, in the
  23706. whole story, are used and which are unused. I can then select and delete
  23707. the ones that aren’t needed (remembering to click the delete button with
  23708. <adjust> so that the window stays on-screen).
  23709. 5.7
  23710. Sometimes, I want to remove a style completely even though it is being
  23711. used. If so, I select all the text, pull up the style menu and click on
  23712. the style to be removed. That will remove all occurrences of it. Don’t
  23713. forget though that a style may also be used on a master page, in which
  23714. case it will not delete. This can actually be put to good advantage
  23715. because I don’t want to accidentally delete, say, “bold” just because it
  23716. is not used in the file as it stands. To prevent accidental deletion,
  23717. create a new dummy master page, create a text frame and type in a few
  23718. choice words and give them the styles that you want to maintain
  23719. permanently within the document. They cannot now be deleted acciden
  23720. tally. − PB
  23721. 5.7
  23722. •   Kerning − On Impression, kerning is extremely easy to achieve,
  23723. especially with the keyboard short-cuts. If you want to (R)educe the
  23724. space between adjacent characters, simply put the cursor between the two
  23725. characters and type <ctrl-R> a number of times. If you over do it,
  23726. simply (E)xpand the space a bit using <ctrl-E>. If you can’t make a fine
  23727. enough adjustment with <ctrl-R> and <ctrl-E>, go through the menu
  23728. options to call up the kerning menu and adjust the number. Remember that
  23729. if you want to try a particular number without losing the kerning
  23730. window, click on Set with <adjust>, not <select>. For vertical kerning,
  23731. use <ctrl-U> to move the text (U)p and <ctrl-J> to er... (J)ump
  23732. downwards?! (Can anyone think of a better mnemonic?)
  23733. 5.7
  23734. The trouble with kerning being so easily available is that it’s easy to
  23735. hit <ctrl-R, E, U or J> by accident. I have tried to use search and
  23736. replace to locate any spurious kerning in a document but cannot find any
  23737. way to do it. You can, of course, export the text with styles and load
  23738. the text into Edit and search for “{but I would have liked a simpler
  23739. way. Any ideas? Still, if you can see roughly where the spurious kerning
  23740. appears, simply go through the menu to get the kerning window up on
  23741. screen and use cursor left and cursor right to move the cursor around
  23742. through the suspect areas. If you move past a kerning statement, the
  23743. numbers will flick up in the kerning window. To remove the kerning,
  23744. click <adjust> on the Clear button and go back to using the cursor keys
  23745. to search for other kerning statements, finally clicking <select> on
  23746. Clear. − PB
  23747. 5.7
  23748. •   Impression speed users’ tips − (Reprinted from Archive 5.5 where the
  23749. last two lines were accidentally omitted!) I find that having got into
  23750. the habit of using <adjust> for reverse scrolling, it really does save
  23751. time, especially when I am laying out the magazine and the screen is
  23752. cluttered with windows. Just press <select> to scroll down and switch
  23753. quickly to <adjust> to go back up again without having to move the mouse
  23754. and locate the other end of the scroll bar − which could be under
  23755. another window anyway.
  23756. 5.7
  23757. Also, <adjust> can be extremely useful, again with a cluttered screen,
  23758. for moving windows whilst keeping them where they are relative to the
  23759. other documents. It takes practice, but it speeds things up in the long
  23760. run. − PB
  23761. 5.7
  23762. •   Search & replace on styles − Impression appears to have the facility
  23763. to search and replace on styles. Indeed, you can search for a style
  23764. using {name” }@, where @ is the wildcard for “any text” but, sadly, you
  23765. cannot replace with another style name, despite the fact that there is a
  23766. menu button on the Search & Replace window to allow you to put a style
  23767. name into the Replace box. I don’t know why CC haven’t implemented this
  23768. facility. They obviously intended to do so because the menu button on
  23769. the Replace box has no other purpose − as it stands, it is totally
  23770. redundant. Perhaps it could be implemented in Impression III but, in the
  23771. meantime, you can do it in Edit, though it’s a bit cumbersome.
  23772. 5.7
  23773. Suppose, for example, that you have a document with various headings all
  23774. using “Heading” (marked on <F2> as Sub-heading) and that you want to
  23775. change some of them to a sub-sub-heading, let’s call it “SubHead”. What
  23776. you will have to do is to click somewhere in the text and use <shift-
  23777. ctrl-T> to save the text. Save it with styles, perhaps into a ram disc.
  23778. Then load that into !Edit and use search & replace to, selectively,
  23779. change  into . (The reason for using  is to catch, in one go,  ON} and 
  23780. OFF} and } all of which can occur in the document.)
  23781. 5.7
  23782. To get it back into the original document, click back in the main text
  23783. in the Impression document, select the whole text with <ctrl-T>, set it
  23784. all back to base text with <ctrl-B>, delete it and then go back to the
  23785. Edit document and save the text into the Impression document. Remember
  23786. though to save the document before you start messing about with it in
  23787. this way. You can get in an awful mess if you edit the text file
  23788. incorrectly.
  23789. 5.7
  23790. If CC can’t add the style search & replace feature into Impression,
  23791. perhaps someone could produce a simple editing application for us. As
  23792. the Impression text is loaded into it, it would create a list of the
  23793. styles available then it would allow you to search and replace using a
  23794. menu to provide you with a list of the styles it knows about. Could
  23795. someone write that for us, please? If you’d like to have a go, get in
  23796. touch with me at Archive. − PB
  23797. 5.7
  23798. •   Style problems − When I am preparing the magazine, I save the text of
  23799. each of the articles, with styles, as edit files in one directory. I
  23800. then have a dummy Archive magazine document into which I insert the
  23801. various edit files. If I have a particular space to fill, say about a
  23802. page and a half, I link together the title frame and the text frames
  23803. that are to make up the article. I know roughly how long each article
  23804. is, so I drop one of the edit files into the title frame. Sometimes, it
  23805. turns out to be just too short or too long and I want to delete it, but
  23806. if I just mark it with <ctrl-T> and delete it and then drop in another
  23807. edit file, I find that the whole text ends up in the same style as the
  23808. main heading − then it really is too long! As far as I am concerned,
  23809. this is a bug in Impression. Anyway, the “work-around” is to mark the
  23810. whole text and press <ctrl-B> first, to change it all back to base
  23811. style, before deleting the text. On a long file, especially if a lot of
  23812. it is displayed on screen, this can take quite a time. Does anyone know
  23813. a quicker work-around?
  23814. 5.7
  23815. Also, I find that, fairly often, the title is left justified instead of
  23816. centred as its style specifies. If I click on the title, type a single
  23817. character and delete it, it springs back to the centre − another bug,
  23818. but one that’s easy to get round. − PB
  23819. 5.7
  23820. •   RTF loader − To transfer WP files from the Mac (or PC versions of
  23821. Microsoft Word, I guess) you can use the RTF (rich text format) loader
  23822. that comes with the Impression Business Supplement. The RTF loader is
  23823. fairly intelligent and knows to swap things like ë into ’ because the
  23824. fonts on Mac and Archimedes use some different ASCII numbers. However,
  23825. unless it has been fixed, it sometimes hangs up with some of these “top-
  23826. bit-set” characters. For example, I was trying to transfer a cook book
  23827. and it hung up (the whole machine!) every time it came across a degree
  23828. symbol as in 100°C. The answer was to search and replace the degree
  23829. symbol into, say, an equal sign or some other character not used in the
  23830. text, transfer with the RTF loader and then search and replace back
  23831. again. (Some of you may have noticed the repeated occurrence of ë
  23832. instead of ’ in one of Risc User’s articles last month − I guess they
  23833. are still using Macs for their magazine and the Archimedes to Mac
  23834. conversion is not as intelligent.) − PB
  23835. 5.7
  23836. • Blank pages printed − If your printer sometimes prints blank pages (as
  23837. Patrick Dowling explained in Archive 5.6) it is probably because the
  23838. printer driver’s bottom margin is set too small. The printer drivers
  23839. send all the data they are told to send for the page and then send a
  23840. form feed character. If they send so much that the printer just goes on
  23841. to its next page and the driver then sends a form feed character the
  23842. printer will eject a sheet. Make sure that the printer’s DIP switches
  23843. are set to disable perforation skip and check any others which determine
  23844. the page size. When entering the bottom margin into the printer driver’s
  23845. paper size entry, it is important to be on the conservative side and
  23846. make this a fraction larger than you think it ought to be (by a couple
  23847. of mm). The only disadvantage to this is that you will lose the ability
  23848. to print in this borderline area, but at least you will avoid the
  23849. mysterious blank pages which can otherwise occur. Unfortunately, printer
  23850. manuals are notoriously awkward, especially when you are looking for the
  23851. top and bottom margins, and most of the printer drivers are supplied
  23852. with the incorrect default settings (to be fair, some drivers are
  23853. written for a range of printers which each have their own unique paper
  23854. margins).  Paul Skirrow.
  23855. 5.7
  23856. (I passed this hint on to one of our Technical Help Service members a
  23857. couple of weeks ago and she confirmed that it worked. All she did was to
  23858. increase the paper size from 297.00 mm to 299.00 mm and she got no more
  23859. blank pages. Ed.)
  23860. 5.7
  23861. • Entering special characters into Impression − There is an updated
  23862. version of !Chars on this month’s disc which can enter special charac
  23863. ters into Impression without needing to tell Impression which font they
  23864. came from. It works just like Chars (or NewChars2 to be precise) and
  23865. provides quick selection of common fonts (Dingbats, Symbol, System and
  23866. Trinity) as well as passing the font information to Impression in DDF
  23867. form. Note that RISC-OS 3 defines the system font to be the same as the
  23868. Latin 1 fonts, complete with the “ and ” characters, but RISC-OS 2
  23869. doesn’t, so it will help if you use the new System font provided on the
  23870. Archive 5.6 program disc if you are using RISC-OS 2.  Paul Skirrow.
  23871. 5.7
  23872. •   PC file transfer − Impression saves text files with an LF-CR termina
  23873. tor rather than the CR-LF terminator which is used by most PC programs.
  23874. This can confuse a lot of PC programs which automatically ignore the
  23875. first character after a LF (which they expect to be a CR), and Computer
  23876. Concepts have agreed to fix this some time.  Paul Skirrow.
  23877. 5.7
  23878. In the meantime, you can presumably use !Edit’s search & replace
  23879. facility to change \x0A\x0D into \x0D\x0A remembering to set the magic
  23880. characters to ON. Ed
  23881. 5.7
  23882. Ovation Hints and Tips
  23883. 5.7
  23884. • Master documents – Hilary Ferns has sent details of master documents
  23885. she has created for use with Ovation. Her design for A4 and A5 letters
  23886. will be particularly useful for newcomers to either DTP or Ovation, and
  23887. her templates for an A5 four sided leaflet, an A5 booklet, A6 leaflet
  23888. and a greetings card or notelet are valuable time savers. With Hilary’s
  23889. permission they are on this month’s program disc in Ovation format, but
  23890. here is just one example of how Hilary used Ovation to produce an A5
  23891. four sided leaflet.
  23892. 5.7
  23893.  
  23894. 5.7
  23895. This is the format of our weekly church news-sheet, which displays news
  23896. about all the events in bordered frames − rather like the ads page of
  23897. the local newspaper. It is printed on A4 paper, photocopied and folded
  23898. neatly in half.
  23899. 5.7
  23900. I use an HP Deskjet 500 printer, so all the margin settings are based on
  23901. this. Printer paper size is A4.
  23902. 5.7
  23903. 1. Set up a new document with the following settings:
  23904. 5.7
  23905.       A4
  23906. 5.7
  23907.       Landscape
  23908. 5.7
  23909.       Single-sided
  23910. 5.7
  23911.       2 columns
  23912. 5.7
  23913.       Gutter 24mm
  23914. 5.7
  23915. Margins – Top 12mm, Left & Right 12mm, Bottom 8mm
  23916. 5.7
  23917. 2. Open up the Master page for your document and include on this any
  23918. regular heading, logo, etc. that you may require. We always have our
  23919. church logo at the top of the front page, together with a “welcome”
  23920. greeting. These are placed in picture frames at the top of the right-
  23921. hand column, i.e. the front of the leaflet when it is eventually folded.
  23922. 5.7
  23923. 3. Obviously, page two will not want these headings, so you will now
  23924. need to create a new chapter (“New Chapter − After current Chapter”) and
  23925. specify chapter two starting at page two (“Modify chapter”). Delete your
  23926. frames from page two. Remember too to think about any paragraph styles
  23927. that you are likely to use.
  23928. 5.7
  23929. 4. Go back to your document and delete the existing pages one and two.
  23930. You will now have a simple document with two A4 sheets, each with 2
  23931. columns and a wide gutter. Within this framework you can create text and
  23932. picture frames, making sure they do not overlap the central guidelines.
  23933. I tend to display most of my text in individual text frames with
  23934. borders, often with a nested picture frame for a picture or “FontFX”
  23935. generated heading. Only rarely do I type directly into the principal
  23936. text frame.
  23937. 5.7
  23938.  
  23939. 5.7
  23940. 5. You may want to have text which flows from one page to the next.
  23941. However, using the principal text frame, the text will not flow back up
  23942. to the “back” page of the leaflet. To do this you will need to create a
  23943. text frame to fit within each column and use the “link” tool to flow the
  23944. text from the front, to the middle and onto the back. This is quite
  23945. simple to work out. (see diagram).
  23946. 5.7
  23947. 6. Save your stylesheet. Printing out such a document is straightfor
  23948. ward. Change to “landscape” on the “Print setup” before saving
  23949. stylesheet.
  23950. 5.7
  23951.  
  23952. Hints and Tips
  23953. 5.8
  23954. •   A5000 filing system problems − There have been more comments about
  23955. problems with losing files on the A5000. We suggested last month that
  23956. you take Acorn’s advice and configure the ADFSbuffers to zero. In the
  23957. light of further experience, we would suggest it even more strongly.
  23958. This problem occurred with Impression but we have had reports that it
  23959. also happens with other software. You have been warned. Ed.
  23960. 5.8
  23961. David Pilling adds... In the last Archive, you had a piece from someone
  23962. saying that it is necessary to *configure ADFSBuffers 0 to make Acorn
  23963. DTP and Impression work properly. The official line according to Beebug,
  23964. is that unless A5000’s are configured like this, they will corrupt their
  23965. hard discs sooner or later. There are well documented cases of this
  23966. occurring. In addition, many programs, ArcFS and the Beebug hard disc
  23967. backup for example, won’t work unless ADFSbuffers are set to zero.
  23968. 5.8
  23969. It is also common advice to load the SerialUtils module before attempt
  23970. ing to use comms programs. The naive point of view is that SerialUtils
  23971. does something clever that allows buffers to work. That is not so,
  23972. SerialUtils actually prevents buffers from doing anything. It is
  23973. therefore much more efficient to stop your comms program from loading
  23974. any buffer and not bother with SerialUtils. SerialUtils will apparently
  23975. also prevent things like printer buffers from working.
  23976. 5.8
  23977. New versions of Hearsay cope with all this automatically and there is a
  23978. version that uses the buffer manager built into RISC-OS 3. However, we
  23979. are still having discussions with Acorn over whether this works properly
  23980. in RISC-OS 3 as fitted to the A5000.  David Pilling, Blackpool.
  23981. 5.8
  23982. •   A5000 second floppy drive − In Archive 5.6 p12, it said that if you
  23983. were putting an external 5¼“ drive onto an A5000 it should be connected
  23984. into the middle socket of the three. That is not correct. It should go
  23985. into the one farthest East. The internal drive goes in the middle one.
  23986. The other point to note is that it said the external drive can be set to
  23987. ID zero or one. That it true but it should perhaps should have been
  23988. spelt out more clearly that it should NOT be set to either two or three.
  23989. If it is, it will not work properly. Ed.
  23990. 5.8
  23991. •   Adjust clicking (RISC-OS 3) − Most people will, by now, have cottoned
  23992. on to the idea that clicking open a directory with <adjust> closes the
  23993. parent directory viewer and that clicking the close button with <adjust>
  23994. opens up the parent. One extension of this on RISC-OS 3 is that clicking
  23995. the close button with <adjust> while holding down <shift> doesn’t
  23996. actually close the window but does open up the parent directory.
  23997. 5.8
  23998. •   Directory date stamps − When copying a directory and its contents, the
  23999. destination directory is created with the current date stamp, as opposed
  24000. to being created and then stamped with the date of the source object.
  24001. (Looking through the PRM I haven’t been able to find a way of stamping a
  24002. file to a date other than that held in the real time clock.)
  24003. 5.8
  24004. In the case of application directories, the application directory’s date
  24005. stamp appears to be copied through, but on closer inspection this is not
  24006. so. The application directory is created with the current date stamp (as
  24007. for normal directories) however, the date which the filer presents the
  24008. user (for the date of the application directory) is actually the date
  24009. stamp of the !RunImage file.
  24010. 5.8
  24011. RISC-OS 3 automatically detects an attempt to move from one directory to
  24012. another on the same media, and performs a Rename operation instead of a
  24013. copy, whereby the date is retained. (Possibly, RISC-OS 3 also has a
  24014. facility for stamping a filer object with a specified date, although I
  24015. will not know about this until the RISC-OS PRM is released!)  D
  24016. Lenthall, London.
  24017. 5.8
  24018. •   Exiting the desktop (RISC-OS 3) − With RISC-OS 2, you could set up an
  24019. obey that would exit the desktop by making the last line:
  24020. 5.8
  24021. FX 138,0,252
  24022. 5.8
  24023. and as long as no text was output by the obey file, the desktop would be
  24024. exited. The same can be done with RISC-OS 3 by placing the above line in
  24025. the obey file twice. It also works with the keys, press <shift−ctrl−F12>
  24026. twice and the desktop is exited. Also when <shift−ctrl−F12> has been
  24027. pressed F12 (*Commands) and <ctrl−F12> (Task Window) still work!
  24028. Warning: If you do use this then the ADFS will be reset, losing the
  24029. current directory.  P Bedford, Peterborough.
  24030. 5.8
  24031. •   Extra validation flags − With RISC-OS 3, a number of new validation
  24032. flags are available for when you are designing window templates. So far
  24033. I have found the following:
  24034. 5.8
  24035. Border Flags − these require the border flag to be set on and give an
  24036. icon a 3D border similar to Impression’s, they all begin with a B (or b)
  24037. and are followed by a number to give the border type:
  24038. 5.8
  24039. 0   Single raised border.
  24040. 5.8
  24041. 1   Double border for grouping.
  24042. 5.8
  24043. 2   Triple border for default action icons.
  24044. 5.8
  24045. 3   Triple border for writable icons.
  24046. 5.8
  24047. 4   Single recessed border.
  24048. 5.8
  24049. 5   Standard single line border.
  24050. 5.8
  24051. 6   Triple recessed border similar to type 3.
  24052. 5.8
  24053. Border type 0 and 3 can be followed by a comma and then a number between
  24054. 0 and 15 to define the colour to slab to.
  24055. 5.8
  24056. Pointer definition − you can define an icon so that the pointer changes
  24057. shape when over the icon. This is done by placing a P (or p) in the
  24058. validation string followed by the name of the sprite containing the
  24059. pointer shape. Try sprite ptr_double.
  24060. 5.8
  24061. Many others may be available with other parameters for the above options
  24062. but until the RISC-OS 3 Programmers’ Reference Manual is available we
  24063. won’t really know. Most of the above is available in RISC-OS 2 by using
  24064. the Interface module by Simon Huntington.  P Bedford, Peterborough.
  24065. 5.8
  24066. •   Iconised windows with Impression (RISC-OS 3) − If you want to
  24067. distinguish Impression documents that have had their windows iconised,
  24068. generate an icon called ‘ic_impressio’ and place it in the !Sprites file
  24069. in the !Impress directory. Mine is the Impression quill & pot in a
  24070. window (ic_?).  P Bedford, Peterborough.
  24071. 5.8
  24072. •   Menon hotkey − If you use Menon’s hotkey facility, a problem can arise
  24073. in that it may not work if you have a window open that contains the
  24074. caret (e.g. Impression). However, it will work if you hold the alt key
  24075. down at the same time as the hotkey i.e. <alt-ctrl-H>. P Bedford,
  24076. Peterborough.
  24077. 5.8
  24078. •   Oak drives with Acorn SCSI card − If you are using an Oak drive with
  24079. an Acorn SCSI card (e.g. if you own an A540), you may find that you are
  24080. unable to dismount the drive and that you get a ‘Bad parameters’ error.
  24081. 5.8
  24082. Hard drives that are formatted using an Oak SCSI card include additional
  24083. information in the boot block which the Acorn card objects to. To solve
  24084. these problems (especially annoying with removable hard drives!), you
  24085. will have to format the disc with Acorn’s SCSIDM.
  24086. 5.8
  24087. Unfortunately, it is not that simple. When the desktop is started up,
  24088. the Acorn card looks at all of the drives that are available. Once it
  24089. sees an ‘incorrectly’ formatted Oak disc, it will not allow SCSIDM to
  24090. access the drive. This means that you will have to start up outside of
  24091. the desktop in order to format the disc. This can be done by typing
  24092. *Configure Language 0 <return> from the command line and then pressing
  24093. <ctrl-break>.
  24094. 5.8
  24095. Once this has been done, you can format your drive in the usual way −
  24096. see pages 11-12 of the SCSI Expansion Card User Guide.
  24097. 5.8
  24098. To start up in the desktop again, simply type *Configure Language 4
  24099. <return> from the command line and then press <ctrl-break>.  Adrian
  24100. Look, N.C.S.
  24101. 5.8
  24102. •   PC file transfer revisited − When transferring text files from PC to
  24103. the Archimedes (or vice versa), it is necessary to convert the carriage
  24104. returns (CRs) to line feeds (LFs) and vice versa. This can be done using
  24105. the search and replace facility of Edit, but it is much quicker just to
  24106. use the in-built transfer ‘CR<->LF’ which is available from the ‘Edit’
  24107. submenu or to press <F8>.  G Riley, Cheshire.
  24108. 5.8
  24109. •   PC screen fonts revisited − In Archive 4.12 p10 there was a hint that
  24110. explained how to change the screen font of the PC Emulator to any BBC
  24111. screen font. Since then, the program has been updated to include EGA+
  24112. and ECD definitions.
  24113. 5.8
  24114. The EGAROM looks to contain two sets of character definitions: EGA+ 16×8
  24115. cells and ECD 14×8 cells, as opposed to the ROM file which (amongst
  24116. other things) contains the 8×8 cells used in the other modes. The
  24117. following program will convert these character sets for EGA+ and ECD
  24118. modes in a similar manner to my previous program:
  24119. 5.8
  24120. REM >EGAFONT
  24121. 5.8
  24122. REM Merge BBC FONT file into !PC EGAROM file
  24123. 5.8
  24124. REM NB. *** COPY ORIGINAL EGAROM FILE BEFORE RUNNING THIS ***
  24125. 5.8
  24126. :
  24127. 5.8
  24128. ON ERROR REPORT:PRINT“ at line ”;ERL :CLOSE#0:END
  24129. 5.8
  24130. DIM rom% &2000,C%(7)
  24131. 5.8
  24132. R$=“:4.!PCEM.EGAROM”
  24133. 5.8
  24134. OSCLI(“*LOAD ”+R$+“ ”+STR$~rom%)
  24135. 5.8
  24136. :
  24137. 5.8
  24138. F%=OPENIN(“:4.BBCFONTS.NEWFONT”):REM File of type &FF7
  24139. 5.8
  24140. :
  24141. 5.8
  24142. REPEAT
  24143. 5.8
  24144. A%=BGET#F%
  24145. 5.8
  24146. IFA%<>23THENPRINT“This is not a BBC font file!”:END
  24147. 5.8
  24148. O%=BGET#F%:PRINT“Char &”;~O%;“ ”;: VDU23,255
  24149. 5.8
  24150. REM  EGA+ chars 16x8 − double horiz. thickness
  24151. 5.8
  24152. P%=O%*16
  24153. 5.8
  24154. FORI%=0TO7
  24155. 5.8
  24156. C%(I%)=BGET#F%:C%=C%(I%):VDUC%
  24157. 5.8
  24158. REM − assemble 8x8 char array
  24159. 5.8
  24160. rom%?(P%+2*I%)=C%
  24161. 5.8
  24162. rom%?(P%+2*I%+1)=C%
  24163. 5.8
  24164. NEXT
  24165. 5.8
  24166. VDU255:PRINT
  24167. 5.8
  24168. REM  ECD chars 14x8 − blank first and last three rows
  24169. 5.8
  24170. P%=&1000+O%*14
  24171. 5.8
  24172. rom%?(P%+0)=0:rom%?(P%+1)=0
  24173. 5.8
  24174. rom%?(P%+2)=0
  24175. 5.8
  24176. FOR I%=0TO7:rom%?(P%+3+I%)=C%(I%): NEXT
  24177. 5.8
  24178. rom%?(P%+11)=0:rom%?(P%+12)=0
  24179. 5.8
  24180. rom%?(P%+13)=0
  24181. 5.8
  24182. UNTIL EOF#F%
  24183. 5.8
  24184. CLOSE#0
  24185. 5.8
  24186. :
  24187. 5.8
  24188. OSCLI(“*SAVE ”+R$+“ ”+STR$~rom%+
  24189. 5.8
  24190. “ + 2000”)
  24191. 5.8
  24192. END
  24193. 5.8
  24194. This program has been tested in both modes by squeezing every last byte
  24195. out of my A3000 and through the use of the PD multisync ‘emulator’ − I
  24196. could just about stand the flickering! The ECD characters are a little
  24197. smaller due to the difficulty in mapping the default 8 onto 14 rows,
  24198. however, it does result in greater line spacing and arguably improves
  24199. readability.
  24200. 5.8
  24201. Finally, I suppose that if anyone needs to redefine the MDA1 outline
  24202. font (has anyone found anything which uses the MDA mode?), they could
  24203. use !FontEd or a similar application to change the font name of their
  24204. preferred outline font to MDA1. The MDA0 font would appear to contain
  24205. definitions for the ‘additional’ IBM character set and, as such, is less
  24206. likely to require redefinition.  P Bready, Glasgow.
  24207. 5.8
  24208. •   Printer buffers − RISC-OS 3 provides a configurable printer buffer.
  24209. Use the command:
  24210. 5.8
  24211. *Configure PrinterBufferSize <n>K
  24212. 5.8
  24213. to set the buffer size to <n> K in length. This does not seem to be used
  24214. by the RISC-OS 3 printer drivers but is used outside the desktop
  24215. environment. To check the buffer has been configured, perform a <ctrl-
  24216. reset> after the configure command, go into Basic and type:
  24217. 5.8
  24218. PRINT ADVAL(-4)
  24219. 5.8
  24220. the result will be the size of your printer buffer.  P Bedford,
  24221. Peterborough.
  24222. 5.8
  24223. •   Translator tips − Translator can easily be used to convert a sprite
  24224. from one screen mode to another. From the Translator menu, simply
  24225. deselect the ‘Pop up > Auto mode’ option, and then select the ‘Process >
  24226. Sprite output > Output mode > Current’. Select the desktop mode for the
  24227. output sprite and drag the sprite to be converted onto the Translator
  24228. icon. Finally, save the converted sprite from ‘Misc > Save > Full’
  24229. option.
  24230. 5.8
  24231. When printing foreign graphics files on a monochrome printer, better
  24232. results can be obtained by selecting the ‘Black and white’ option from
  24233. the Translator menu i.e. the sprite is converted into 256 grey scales.
  24234. (I think this is because there is less distortion of the colours than
  24235. when fitting the sprite to the 256 desktop colours available and then
  24236. the printer driver using ColourTrans to convert them to monochrome
  24237. information.) C Paul, Manchester.
  24238. 5.8
  24239. •   Waiter and MultiFS clash − You can’t run The Data Store’s Waiter with
  24240. the version of MultiFS that comes with the new PC Emulator. You must
  24241. quit Waiter before running MultiFS.  J Thompson.
  24242. 5.8
  24243. •   Window bug (RISC-OS 3) − There is a bug in the windows redraw routine.
  24244. If you use !FormEd to define a window with a vertical scroll bar, no
  24245. horizontal scroll bar and no size icon, then turn on the horizontal
  24246. scroll bar, being careful not to cover where the size icon would be with
  24247. the menu, you will see that no box is redrawn in the area where the size
  24248. icon should be. If you drag other windows over this window the result is
  24249. a mess in the area where the size icon should be. As this example shows,
  24250. the result is not as expected.  P Bedford, Peterborough.
  24251. 5.8
  24252. •   Window movement (RISC-OS 3) − If you use <adjust> in the scroll bar
  24253. areas to provide reverse movement, you may find useful the facility for
  24254. complete window scrolling. If you click adjust and hold on either slider
  24255. bar, the pointer vanishes and if you move the mouse, the window is
  24256. scrolled in the same direction. This only works if both scroll bars are
  24257. on a window.  P Bedford, Peterborough.  A
  24258. 5.8
  24259. 5.8
  24260.  
  24261.  
  24262.  
  24263. Image-setting
  24264. 5.8
  24265. Hints & Tips
  24266. 5.8
  24267. •   Make sure you ask the image-setting bureau to produce films in a form
  24268. that your printer can use. e.g. Can he use ‘right reading positive’?
  24269. 5.8
  24270. •   Only use high quality PostScript fonts such as the range from EFF –
  24271. mistakes can be expensive.
  24272. 5.8
  24273. •   Ensure that the client ‘accepts’ a bromide ‘proof’ before having the
  24274. work printed.
  24275. 5.8
  24276. •   Scanning − if you do your own scanning, rather than having it done via
  24277. a bureau, use the lowest possible scanning resolution that is consistent
  24278. with the screen resolution being used by the printer − i.e. a 150 l.p.i.
  24279. screen (a typical value for high quality magazines) requires no more
  24280. than 150 dots per inch scan, assuming a reproduction ratio of 1:1.  A
  24281. 5.8
  24282.  
  24283. Hints and Tips
  24284. 5.9
  24285. •   Auto-destruct! − There are applications, like Impression, that have an
  24286. auto-save facility. Auto-save is a very helpful facility and I use it
  24287. myself but, with Impression (and perhaps other applications), there is
  24288. an option to auto-save without prompt. In other words, every few
  24289. minutes, without you being able to stop it, it will save the current
  24290. document on top of the original document on disc. If you can’t already
  24291. see the danger of this, an anecdote might help...
  24292. 5.9
  24293. Tord Eriksson sent an article (over 400k long including various draw
  24294. files) all the way from Sweden on a single floppy disc and there was no
  24295. space on the disc for a duplicate copy of the document. I loaded the
  24296. article and was playing around with it prior to editing it for the
  24297. magazine. I was trying to see if the text was all one story and so had
  24298. cut and pasted various bits when suddenly I got the message “The file
  24299. has just been saved”. Fortunately, I hadn’t actually deleted anything
  24300. important just prior to the auto-save, but it does go to show that you
  24301. should never send a file to someone else having left the preferences set
  24302. to auto-destruct, sorry, I mean auto-save. Ed.
  24303. 5.9
  24304. •   Compression − Contrary to the review of Compression in Archive 5.2
  24305. (page 57) it is possible to initiate cfs directory displays from script
  24306. files. This might prove useful for those who want to use cfs as the
  24307. default filing system and who want to automatically display the root
  24308. directory on switching on the Archimedes. The problem is that the line,
  24309. 5.9
  24310. Filer_OpenDir CFS#SCSI::Work.$
  24311. 5.9
  24312. will not work unless the CFSmodule is active and it is inadequate to
  24313. simply run the !CFS application before this line in the script file. The
  24314. trick is to set up a !Boot application (as always) and to use this
  24315. application’s !boot (or !run) file to load the CFSmodule and activate it
  24316. before calling the script file. Assuming the !CFS application is hidden
  24317. away on the hard disc in the directory $.Utils. Filehndlng, this can be
  24318. achieved using the following commands:
  24319. 5.9
  24320. |Load CFS
  24321. 5.9
  24322. RMEnsure CFSModule 1.10 RMLoad $.Utils.Filehndlng.!Cfs .CFSModule
  24323. 5.9
  24324. RMEnsure CFSModule 1.10 Error CFSModule not loaded
  24325. 5.9
  24326.  
  24327. 5.9
  24328. |Initialise CFS and set the
  24329. 5.9
  24330. |scratch dir for it to use
  24331. 5.9
  24332. |in handling files
  24333. 5.9
  24334. NewCFS SCSI:4
  24335. 5.9
  24336. CFStemp SCSI::Work.$.!System
  24337. 5.9
  24338. |The !cfs !boot file should be
  24339. 5.9
  24340. | run to allow the correct icons
  24341. 5.9
  24342. | to be “seen” by the system:
  24343. 5.9
  24344. $.Utils.Filehndlng.!Cfs.!Boot
  24345. 5.9
  24346.  
  24347. 5.9
  24348. | run desktop, load applications
  24349. 5.9
  24350. | and display root directory
  24351. 5.9
  24352. Desktop -file <HardBoot$Dir> DeskBoot
  24353. 5.9
  24354. The script file, in this case called DeskBoot, used to load the
  24355. applications and open the root directory should be something like this:
  24356. 5.9
  24357. Run <r>!System
  24358. 5.9
  24359. Run <r>!Scrap
  24360. 5.9
  24361. Run <r>!FontsPlus
  24362. 5.9
  24363. Run <us>!StickyBD
  24364. 5.9
  24365. Run <um>!Alarm
  24366. 5.9
  24367. Run <uf>!Dustbin
  24368. 5.9
  24369. Filer_OpenDir CFS#SCSI::Work.$
  24370. 5.9
  24371. The commands “*Newcfs” and “*CFStemp” are not documented in the
  24372. Compression manual but are explained in sufficient detail in the *Help
  24373. feature of the CFSmodule itself. (Type *help cfsmodule for a list of the
  24374. commands, then do a *help for each individual command for more details.)
  24375. 5.9
  24376. There is an example !boot application on the monthly program disc.  Rob
  24377. Wears, Birmingham.
  24378. 5.9
  24379. •   Speeding up SQuirreL − If, like me, you often have lengthy queries and
  24380. reports for the SQuirreL database to perform, you may have wondered why
  24381. it makes no difference at all when you drag the table in question onto a
  24382. RAM disc.
  24383. 5.9
  24384. The reason for this is that SQuirreL makes extensive use of the !Scrap
  24385. application; if you copy this, too, to the RAM disc and double click on
  24386. it, the hard disc will be silent.
  24387. 5.9
  24388. Just don’t forget to double click onto the version of !Scrap on your
  24389. hard disc when you remove the RAM disc! 
  24390. 5.9
  24391. Jochen Konietzko, Köln, Germany.  A
  24392. 5.9
  24393. 5.9
  24394.  
  24395. Ovation Hints & Tips
  24396. 5.9
  24397. The following was submitted by Hilary Ferns, for which we are very
  24398. grateful. She adds that the Ovation manual is full of hints and tips
  24399. like these (and identical to some we have already published − oops!).
  24400. 5.9
  24401. •   Selecting tools − Using <select> to choose from the toolbox will
  24402. automatically return you to the text insertion icon after you have
  24403. performed one action with that tool. Using <adjust>, however, will allow
  24404. you to remain with your chosen tool until you decide to select the next
  24405. tool again yourself. This is useful when you want to draw several lines
  24406. or frames, or link a number of successive boxes.
  24407. 5.9
  24408. •   Using picture frames − The default ‘inset’ for a picture frame is 0
  24409. mm. (For a text frame it is 1 mm.) Ovation will scale your imported
  24410. picture with the bottom and left sides aligned to the frame. I have
  24411. discovered on many occasions these sides of a picture (Draw or Sprite
  24412. format) to have been slightly cropped. This is not always obvious on
  24413. screen but is quite noticeable when printed. I now offer various answers
  24414. to this problem.
  24415. 5.9
  24416. 1. Set inset to 1mm before importing the picture.
  24417. 5.9
  24418. 2. If you want to move the picture within the frame, whatever the inset
  24419. you are ln danger of losing a fragment on any edge. You can give
  24420. yourself more space by either increasing the frame size (often not
  24421. suitable) or by decreasing the size of the picture by 1% in each
  24422. direction.
  24423. 5.9
  24424. 3. Remember too that holding down shift while moving the picture will
  24425. restrict movement to horizontal and vertical directions only, thus
  24426. enabling you to move the picture more accurately.
  24427. 5.9
  24428. I find the keyboard short-cuts for scaling a picture within a frame
  24429. particularly useful <shift-ctrl-G> to scale and <shift-ctrl-H> to fill
  24430. the frame.
  24431. 5.9
  24432. •   Text to Draw path object − The character selection application
  24433. (!CharSel) supplied with Ovation, apart from offering access to
  24434. alternative characters, also allows a single character to be changed to
  24435. Drawfile format. To do this, you select the character with <adjust>. The
  24436. resulting Drawfile icon can then be dropped into an Ovation picture
  24437. frame. Various interesting effects can be obtained by using these
  24438. characters in headings (together with a bit of imagination!).
  24439. 5.9
  24440. •   Default style-sheet − In the !Ovation application directory is a
  24441. style-sheet called ‘Default’. This is the one used each time you load
  24442. Ovation and click on the icon to open up a document. This can be
  24443. replaced with a style-sheet of your own choice, e.g. one you use
  24444. regularly, but it must be called ‘Default’. This would mean that you
  24445. will always have your own particular choice of paragraph styles defined
  24446. when Ovation is run. This is a very useful facility not to be missed.
  24447. 5.9
  24448. The next few hints and tips were sent by Aneurin Griffiths from Trefin,
  24449. Dyfed. Again we are most grateful and are glad to see a number of
  24450. readers redressing the Impression/Ovation balance by sending in some
  24451. really useful Ovation tips.
  24452. 5.9
  24453. • To draw short lines using the “line-tool” − Draw a long line, even
  24454. passing through text, and press <select>. Now shorten the line by
  24455. placing the pointer on the red box at the ‘long end’ of the line, and,
  24456. using <select>, shorten the line to the required length.
  24457. 5.9
  24458. • Printing labels using computer sheets with 2 or 3 rows of labels − If
  24459. the sheets are not A4 size, adjust the page size on the printer menu.
  24460. Carefully measure the distance from the top of the sheet to a point half
  24461. way between the first label and the second label. Use ‘View 200%’ and
  24462. mark a horizontal guide line by placing the pointer on the side ruler
  24463. and pressing <select>. (Fine adjustment is possible using <adjust>.)
  24464. Measure the distance from the mid point previously taken to one mid-way
  24465. between label 2 and 3. Carefully draw a guide line as before. Other
  24466. guide lines can now be drawn with the same spacing.
  24467. 5.9
  24468. Vertical guide lines can now be drawn in the same way. Now draw a text-
  24469. frame in the first of the rectangular spaces, allowing space for the
  24470. margins around the label. At this stage it is a good idea to save the
  24471. layout as “Blnk_xy”, where values for the label size could be coded.
  24472. 5.9
  24473. Enter the text in the text frame. Then select Object − Duplicate Frame,
  24474. and enter the appropriate number (‘requirement’ − 1!). Without changing
  24475. the instructions further, a stack of labels will be shown. These are now
  24476. easily moved to their positions on the grid using <adjust>. Obviously,
  24477. the labels on one printed sheet may be all the same or assorted. It is
  24478. sensible to make the first printout on an A4 sheet and then the A4 and
  24479. the sheet of labels may be matched from the top and left margins. Any
  24480. necessary adjustments can be easily made. Using this method the sheet
  24481. feed system is used. This works very well with a Canon BJ130e printer.
  24482. 5.9
  24483. • Using Ovation’s spelling checker − It is important to realise that the
  24484. checker must be started at the beginning of each Chapter when checking a
  24485. document composed of more than one Chapter. After Ch.1, select the first
  24486. page of Ch.2 and start the spell check again.
  24487. 5.9
  24488. This from Albert Kitchenside, Addlestone, Surrey:
  24489. 5.9
  24490. • Importing Text from PipeDream − The Ovation manual recommends
  24491. importing PipeDream text by holding down <ctrl> while dragging the
  24492. PipeDream text file into an Ovation frame. This has the effect of
  24493. converting single line terminators into spaces to allow Ovation to
  24494. reformat text within a frame. However, Albert finds that lines between
  24495. paragraphs and headings are erroneously removed using this method. He
  24496. has sent a Basic program which processes files correctly prior to import
  24497. into Ovation. They are in the directory PD/OV on the monthly program
  24498. disc.
  24499. 5.9
  24500. Impression
  24501. 5.9
  24502. Hints & Tips
  24503. 5.9
  24504. •   More than 76 graphics per chapter − If you really want to have more
  24505. than 76 graphics per Impression chapter, then use David Pilling’s ArcFS
  24506. to store your document. You will then be able to store an unlimited
  24507. number of graphic files, but you may find the access times a bit slow!
  24508. Also, RISC-OS 2 users should be aware that a bug manifests itself after
  24509. the 9358th file and filenames become confused. − Martin Sperl, Austria.
  24510. 5.9
  24511. •   More than 76 fonts available at once − Continuing the ‘trick’ above,
  24512. it is also possible to have an unlimited number of fonts available
  24513. simultaneously by copying all files from your !Fonts directory into an
  24514. ARCFS archive (plus all the extra fonts that you have always wanted to
  24515. use), and then insert the following line (for example, assuming the new
  24516. archive is called “Font”) into your !Boot file within the new archived
  24517. font directory:
  24518. 5.9
  24519. Set Font$Path ARCFS#Font:$
  24520. 5.9
  24521. You can then cause the new set of fonts to be loaded automatically by
  24522. inserting the following line within your system startup sequence (after
  24523. ArcFS has been run!):
  24524. 5.9
  24525. OpenArchive SCSIdisc4::ARCFS#Font
  24526. 5.9
  24527. (You need to substitute the name for your own hard disc in place of
  24528. SCSIdisc4.) Also, please note that to avoid a speed penalty in system
  24529. startup, you do not have to use compression when creating the font
  24530. archive and you will still save approximately 2k of disc storage per
  24531. font. − MS
  24532. 5.9
  24533. •   Viewing the screen without moving the cursor − Hold down <Shift> and
  24534. <Ctrl> and then use the arrow keys. It changes your view on the
  24535. document, left, right, up and down, without moving the cursor position.
  24536. This is useful if you don’t want to have to change the magnification to
  24537. something smaller, and thus lose the legibility of the screen font. −
  24538. David Crofts, Bury St Edmunds
  24539. 5.9
  24540. • Large capitals in normal text − If you like having a large letter to
  24541. add emphasis to the start of a paragraph but have found that the
  24542. subsequent line is spaced too far beneath, there is a solution:
  24543. 5.9
  24544. Edit the Main Heading style (or create a new style), clicking on the
  24545. 120% button, and then changing the Line Spacing box to the same as the
  24546. Font Size box e.g. 24pt as default. The problem, as you can see above,
  24547. is solved! − DC
  24548. 5.9
  24549. •   Substitute for colour in documents − Try a little variety in Black and
  24550. White. For a poster I did recently, I redefined some of the font colours
  24551. in styles to grey palettes. This gives an interesting variety to the
  24552. print density if you have a decent printer driver. − DC
  24553. 5.9
  24554. •   Bullet point − <shift−backspace> is a short-cut to enter a • bullet in
  24555. the text. − DC
  24556. 5.9
  24557. •   Deleting styles from the menu − another of those hints that everyone
  24558. else probably knew about all along...
  24559. 5.9
  24560. When you merge pieces from several old documents into one new text, this
  24561. often means that your style menu becomes unnecessarily long.
  24562. 5.9
  24563. You can delete those unwanted styles in the “edit style” window, with
  24564. one snag:
  24565. 5.9
  24566. If you click first onto a style in the style list, then on “edit style”,
  24567. any attempt to delete that style will bring up an error message.
  24568. 5.9
  24569. This is because clicking into the style list automatically selects a
  24570. style at the cursor position.
  24571. 5.9
  24572. Therefore, after you open the edit window, you must first deselect the
  24573. style before it can be deleted!  − Jochen Konietzko, Köln, Germany
  24574. 5.9
  24575. •   Installing Impression on the A5000 − While helping a relative to setup
  24576. his A5000/Impression system, we discovered that the installation program
  24577. for the DTP installs the old Font Manager (v2.44) onto the !Fonts
  24578. directory and all the old files associated with it. The ability of the
  24579. new Font Manager (v2.49) to address multiple font directories is lost
  24580. and Impression only ‘sees’ either the ROM fonts or the hard disc fonts.
  24581. I suggest that anyone installing Impression is urged to remove the
  24582. support files in the fonts directory after the installation process
  24583. (leaving the actual fonts themselves behind) and reload the files within
  24584. the fonts directory on the Apps 1 disc. Hopefully, Computer Concepts
  24585. will alter the !Install program to take account of the changes in RISC-
  24586. OS 3. − David Woods, Glasgow
  24587. 5.9
  24588. • More on Impression styles − Various readers have written with queries
  24589. on styles called ‘table’ and ‘default’ that appear on the style menu
  24590. with Impression version 2.16. These are not (in themselves) new program
  24591. features or bugs − they are just extra styles stored as part of the
  24592. !Default document stored in !Impress.Auto. The facilities provided by
  24593. the ‘table’ style are all as documented in the very first Impression-2
  24594. User Guide and are automatically set up for you if you import spread
  24595. sheet data using the LoadCSV+ loader which comes with the business
  24596. supplement. If the extra styles cause you problems or conflict with any
  24597. of your own style names, all you have to do is open a blank document,
  24598. edit the offending styles and click on the delete button to remove them
  24599. and save the document with the name !Default in one of your own
  24600. directories. Now quit Impression, open !Impress.Auto and move the
  24601. “original” !Default document elsewhere and replace it with the one you
  24602. just created. Now when you start Impression, the offending styles will
  24603. not appear. You may like also to set up your most frequently used master
  24604. pages and other styles using the same method. − Rob Sherratt,
  24605. Felixstowe.
  24606. 5.9
  24607. •   !Impression with !Compression − The message from Impression
  24608. “Incompatible document version” means you are trying to load the adfs
  24609. icon into the application rather than the compressed icon!!  − Ned
  24610. Abell, Kidderminster
  24611.  
  24612. Hints and Tips
  24613. 5.10
  24614. •   RISC-OS 3 & DOS filenames − DOS filenames (including extensions) are,
  24615. in general, longer than the maximum length of a valid ADFS filename (10
  24616. characters). It is not always possible to copy or move DOS files from
  24617. hard disc partition or floppy discs directly to the ADFS.
  24618. 5.10
  24619. The !MultiFS utility, as supplied with the PC Emulator, solves this by
  24620. allowing you to truncate the DOS filename while the translation process
  24621. takes place. Another very useful option (which I often use when copying
  24622. files from C programs) is to force !MultiFS to handle DOS extensions as
  24623. directories (hierarchical).
  24624. 5.10
  24625. However, when the filetype of a DOS partition on your ADFS hard disc is
  24626. set to ‘DOSdisc’, RISC-OS 3 will display a filer window for the
  24627. partition when you try to open the folder, while !MultiFS just ignores
  24628. it (i.e. no :C drive on the iconbar). This is all very nice but RISC-OS
  24629. 3 doesn’t offer the nice name translation options mentioned above. To
  24630. enable !MultiFS to display your DOS partitions just set their filetype
  24631. to ‘data’ before you start !MultiFS. Remember to use the command line
  24632. and not the filer menu, because the latter doesn’t allow you to change
  24633. the filetype of DOSdiscs. I inserted three lines for each DOS partition
  24634. in the !MultiFS !Run file to swap between ‘DOSdisc’ and ‘data’ type
  24635. partitions when !MultiFS is started:
  24636. 5.10
  24637. *Filer_CloseDir <PCe$Drive_X>
  24638. 5.10
  24639. *SetType <PCe$Drive_X> Data
  24640. 5.10
  24641. directly after setting the system variable <PCe$ Drive_X>, and
  24642. 5.10
  24643. *SetType <PCe$Drive_X> DOSDisc
  24644. 5.10
  24645. at the end of the !Run file (although the comment tells us not to do
  24646. so).
  24647. 5.10
  24648. Unfortunately, there are some bugs in !MultiFS: When you copy to a
  24649. MultiFS filer window, you must ensure name translation is not set to
  24650. hierarchical, otherwise you will end up with wildcards (‘?’) in
  24651. filenames. When this happens, you must use DOS itself to delete the file
  24652. because RISC-OS fails to wipe those objects. Another bug appears if you
  24653. shut down your system after using !MultiFS. This results in an error
  24654. report and a task manager crash.  Paul Groot, Holland.
  24655. 5.10
  24656. •   Sprite does not exist error − In answer to last month’s query in the
  24657. Help! section, the ‘Sprite does not exist’ error only occurs with the
  24658. old version of the printer drivers. It can be solved by simply using a
  24659. later version of the printer driver e.g. v2.44 or later (as per
  24660. Shareware Disc 17).
  24661. 5.10
  24662. Progammers take note: The error is cause by programs that print sprites
  24663. using their names and not their pointers.
  24664. 5.10
  24665. Many thanks to all those who called − too numerous to mention!
  24666. 5.10
  24667. •   High resolution PostScript? When printing sprites to !PrinterPS, the
  24668. resulting output may be lower quality than, for example, a 600 dpi
  24669. LaserDirect (using !ShowPage), even when printing at 300 dpi. A solution
  24670. is to change the configuration file of !PrinterPS to make it think the
  24671. resolution is higher e.g. change the ‘pxres’ and ‘pyres’ parameters to
  24672. 600.  J Thorn, Cardiff.
  24673. 5.10
  24674. •   Problem with Font$Path − I recently experienced a problem with
  24675. Impression 2.16 that took a long time to solve. The problem manifests
  24676. itself by Impression, on starting, reporting an error ‘Not Found’. If
  24677. you select OK to continue, the following error is reported ‘Illegal
  24678. window handle’ and at this point you have to quit, because continuing
  24679. results in the second error message. After about two hours of trying to
  24680. find the problem − as the error messages are not particularly helpful −
  24681. I discovered that the problem lay with Font$Path.
  24682. 5.10
  24683. I have two !Fonts directory, one with a small number of outline fonts
  24684. and one with a large number. Also, my second font directory pulls in the
  24685. fonts in my first directory by use of the Font$Path variable. I had
  24686. moved the locations of these directories from an Apps folder to the root
  24687. folder of my hard disc and this was causing the problems. The ‘Not
  24688. Found’ error is caused by Impression not finding the first directory in
  24689. the Font$Path and the second error is caused by the fact that a Font
  24690. Menu can’t be created, as the specified directory does not exist.
  24691. Indeed, most applications that support outline fonts will also give
  24692. similar error messages.
  24693. 5.10
  24694. I have written a small program (on this month’s program disc) that will
  24695. test the validity of Font$Path and a call to this program should be
  24696. placed as the last line in any !Fonts.!Run file. A copy of FontTest will
  24697. need to be copied into all !Fonts directories i.e.
  24698. 5.10
  24699. | !Run file for !Fonts (version 0.11, 10-May-89)
  24700. 5.10
  24701. |
  24702. 5.10
  24703. Iconsprites <Obey$Dir>.!Sprites
  24704. 5.10
  24705. |
  24706. 5.10
  24707. | Kill newer versions of Font Manager
  24708. 5.10
  24709. |
  24710. 5.10
  24711. RMKill FontManager
  24712. 5.10
  24713. RMKill SuperSample
  24714. 5.10
  24715. |
  24716. 5.10
  24717. RMEnsure FontManager 2.42 RMLoad <Obey$Dir>.Fonts
  24718. 5.10
  24719. RMEnsure SuperSample 0.04 RMLoad <Obey$Dir>.Super
  24720. 5.10
  24721. |
  24722. 5.10
  24723. SetMacro Font$Path adfs::
  24724. 5.10
  24725. HardDisc.$.!Fonts., <Font$Prefix>.
  24726. 5.10
  24727. Set Font$Prefix <Obey$Dir>
  24728. 5.10
  24729. |
  24730. 5.10
  24731. <Obey$Dir>.FontTest
  24732. 5.10
  24733. The program firstly checks that Font$Path exists and then reads the
  24734. environment variable and checks its size. The length of this variable
  24735. has to be greater than zero for it to point to a valid !Fonts directory.
  24736. 5.10
  24737. It then checks that every reference in Font$Path points to a valid
  24738. directory. This is done by an OS_File call (line 680) which will return
  24739. 2 if the filename given is a directory. If the file reference does not
  24740. exist, an error will be generated and the Fonts directory !Run file
  24741. needs to be modified.
  24742. 5.10
  24743. I have included an example of the problem on the program disc in the
  24744. ‘Example’ directory. If you click on !Fonts2 an error will be generated
  24745. as the Font$Path contains a reference to a file !Fonts3 (not a direc
  24746. tory). Andrew Ferguson, London.
  24747. 5.10
  24748. •   ArcFS and sticky backdrops − I have a backdrop application on my
  24749. machine with all the sprites for the various applications held in an
  24750. archive in order to save disc space. In order that the sprites can be
  24751. seen, in theory they should be de-archived first. Thanks to my son,
  24752. Neil, I have the following set of ArcFS commands in the !Run file of my
  24753. !Boot application on the hard disc.
  24754. 5.10
  24755. RMEnsure ArcFS 0 RMLoad System: Modules.ArcFSMod
  24756. 5.10
  24757. RMEnsure ArcFS 0 Error I cannot find the module
  24758. 5.10
  24759. OpenArchive <Boot$Dir>.SpriteLib Sprites
  24760. 5.10
  24761. IconSprites ArcFS#Sprites:$. !Sprites
  24762. 5.10
  24763. CloseArchive Sprites
  24764. 5.10
  24765. C Walker, Wymondham.
  24766. 5.10
  24767. •   Elite Commanders − On this month’s program disc, there is a program
  24768. which allows you to edit Elite commander files. There are also three
  24769. commander files with missions to accomplish. S Edwards, Stourbridge  A
  24770. 5.10
  24771. 5.10
  24772.  
  24773. Vector Hints − not in the manual!
  24774. 5.10
  24775. If the paths rotate the wrong way, you get...
  24776. 5.10
  24777. 5.10
  24778. If the paths rotate the “right” way, you get...
  24779. 5.10
  24780. 5.10
  24781. If the paths originate at the same point, you get...
  24782. 5.10
  24783. 5.10
  24784. Remember, always have the same number of points in the paths. The
  24785. interpolation in the first example was without reversing or flipping
  24786. either of the paths.
  24787. 5.10
  24788. 5.10
  24789. The paper margins are shown on the main window and the printer setup
  24790. menu is used to deselect those pages you don’t need.
  24791. 5.10
  24792. The Eppler profile was “plotted” on an A0 page. The paper margins shown
  24793. are A4 size.
  24794. 5.10
  24795.  
  24796. 5.10
  24797. 5.10
  24798.  
  24799.  
  24800.  
  24801. Impression Hints & Tips
  24802. 5.10
  24803. •   Mailmerge in Impression: So it seems that there are no tips like old
  24804. tips (Archive 3.9 p20). I claim that Charles Moir learned the trick he
  24805. uses from me! Just one point to add, though. You have a choice between
  24806. linking frames on a master page and not linking. If you link, the text
  24807. flows through the frames on a page and then on to the first frame of the
  24808. next page. This is probably convenient for small mailing lists without
  24809. use of a database. If you do not link frames, text flows from page to
  24810. page within the homologous frame. I recently helped to run a biggish
  24811. scientific meeting which involved mail shots to about a thousand
  24812. potential delegates and a full feedback of booking information to about
  24813. 450. The database resided on a Mac, the most widely-used computer in the
  24814. lab, and an output file was generated in <Tab> separated format, ported
  24815. to a DOS disk, then to PipeDream. Individual columns (fields) or groups
  24816. of columns were then extracted, linefeeds replaced by
  24817. 5.10
  24818. s, and the fields dropped into the right frames of the first page.
  24819. Perfect registration was retained: the last person’s details did belong
  24820. to him! All I had to do was to edit some of the less wise entries in the
  24821. “comments” field of the database, which might have been taken as casting
  24822. aspersions on the intelligence, rationality and financial or moral
  24823. rectitude of some the participants! This method obviates the need to
  24824. generate a report format for your database. You just extract the data
  24825. you want for each of your frames and drop it in. Some fields get used
  24826. twice, such as parts of names, once for the address (lined up with an
  24827. envelope window), and once for the Dear... line.
  24828. 5.10
  24829. We also produced sheets of individualised meal tickets. The purpose here
  24830. was to ensure that none of the three eating places got all the dele
  24831. gates. We operated a “swap-shop” but needed to know who was swopping
  24832. with whom. Named tickets solved this. In this case, I extracted the
  24833. names once and dropped then into the first (unlinked) frame. To make a
  24834. copy in the next frame (×450), <Ctrl-T> to mark all the text in the
  24835. frame, 450 pages deep, <Ctrl-C> to copy it and then <Ctrl-V> to paste it
  24836. into each frame. The printer who perforated the sheets was quite
  24837. impressed by the product: he had never seen the like. He certainly had
  24838. no idea how easy it was (save for feeding 450 sheets of card into the
  24839. laser printer).  Mike Hobart, Cambridge.
  24840. 5.10
  24841. Image setting − Another firm which does image setting is Stylus
  24842. Publications Bureau of 98 Wilberforce Road, Finsbury Park, London N4
  24843. 2SR. They also do colour slides and CibaChrom prints and overheads from
  24844. Draw and Impression. However, they covered so much of their literature
  24845. with gold leaf that I wonder if they are still trading!  Mike Hobart,
  24846. Cambridge.
  24847. 5.10
  24848.  
  24849. Hints and Tips
  24850. 5.11
  24851. •   A5000 hard disc replacement − One drawback with the A5000 is that the
  24852. 40M hard disc quickly fills up. Being in this position, I decided to
  24853. replace mine with a larger one.
  24854. 5.11
  24855. Researching prices, I found that IDE drives bought direct from suppliers
  24856. advertising in magazines such as Personal Computer World are much
  24857. cheaper than the same drives advertised in the specialist Acorn
  24858. magazines. Would any IDE drive work? A friend told me that Seagate IDE
  24859. drives did not work correctly on A5000s but Connor (as already fitted to
  24860. my A5000) and Maxtor (as fitted to another A5000 I know of) should be
  24861. OK, as well as Quantum. Another friend recently bought and fitted an NEC
  24862. drive to his A5000.
  24863. 5.11
  24864. I bought a 120M cached Quantum drive (the GM120AT). The drive, from SMC
  24865. who advertise in PCW, arrived the day after I ordered it.
  24866. 5.11
  24867. The fitting was extremely simple. After a backup and power off I removed
  24868. the cables, undid the four screws under the old drive (it is necessary
  24869. to remove all the drive cables and lift out the metal bracket to which
  24870. the drives are fastened) to release it and slotted in the new one − no
  24871. problems! The drive was already low-level formatted and, although the
  24872. hard disc formatter supplied with RISC-OS 3 didn’t recognise the disc
  24873. shape, I just selected ‘Initialise’ and that was it. The drive worked a
  24874. few seconds after switching on.
  24875. 5.11
  24876. In use, the drive feels very fast. I have measured a data transfer rate
  24877. of 1060k/sec, compared to 800k/sec for the original drive and an average
  24878. access time of 7ms(!) as compared to 18ms.
  24879. 5.11
  24880. Similar drives advertised specifically for the A5000 in the Acorn press
  24881. are £50­£100 more. Some of these include splitter cables, allowing the
  24882. old drive to remain (there are already mounting holes for a second drive
  24883. on the A5000, drilled in the case below the floppy disc drive). I intend
  24884. to make my own in the next few days − it will cost about £10.
  24885. 5.11
  24886. So I would recommend anyone wishing to upgrade their A5000’s internal
  24887. disc drive to do it themselves. Just obey the following rules:
  24888. 5.11
  24889. −  Shop around for the best deal in the general computer and PC press.
  24890. 5.11
  24891. −  Buy a low profile 3½“ AT IDE drive made by Quantum, Conner, Maxtor or
  24892. NEC.
  24893. 5.11
  24894. −  Make a backup of your old hard disc before commencing the changeover.
  24895. 5.11
  24896. −  Use the RISC-OS 3 hard disc formatter to initialise the new disc, no
  24897. need to format.
  24898. 5.11
  24899. −  If you want to use both drives, Maplin Electronics sell everything
  24900. you need to make the splitter cables.
  24901. 5.11
  24902. Perhaps a list of known A5000-friendly IDE drives could be compiled? 
  24903. Seán Kelly, Leighton Buzzard
  24904. 5.11
  24905. •   Acorn SCSI card − If you buy the CDFS/FSCSI upgrade for the Acorn SCSI
  24906. card, there is a link change to be made on the AKA31 version of the card
  24907. but if you have one of the older AKA30 cards, it is slightly more
  24908. complicated.
  24909. 5.11
  24910. The upgrade consists of putting a 27512 EPROM in place of the existing
  24911. 27256 EPROM. To enable the extra address lines, hardware modifications
  24912. are needed. Links 1, 3, 4 and 5 remain unchanged but link LK2 was open
  24913. and has to be closed and link LK12 was closed and has to be opened. On
  24914. the AKA31 boards, these changes can be made by moving a link but on the
  24915. AKA31, this will involve cutting a track on LK12 and soldering a link on
  24916. LK2. This should not be attempted unless you are competent to make such
  24917. a modification and it will, in any case, invalidate the warranty on the
  24918. board. Acorn dealers should do the modification for you although there
  24919. may be a charge unless you buy the upgrade from them. Tudor Jones,
  24920. Barnet.
  24921. 5.11
  24922. •   Automatic kerning and RISC-OS 3 − The font manager has this facility.
  24923. Currently it is only available with the standard ROM fonts (Trinity,
  24924. etc.). Presumably, EFF will update their fonts to include kerning pairs.
  24925. To use auto-kerning, simply set bit 9 of R2 in all calls to SYS
  24926. “Font_Paint”.
  24927. 5.11
  24928. 10 REM >KernDemo
  24929. 5.11
  24930. 20 REM Example of automatic kerning
  24931. 5.11
  24932. 30 REM For RISC-OS 3 ROM fonts only
  24933. 5.11
  24934. 40 MODE 15:OFF
  24935. 5.11
  24936. 50 SYS “ColourTrans_SetFontColours”,0,0,
  24937. 5.11
  24938. &F0F00000,14
  24939. 5.11
  24940. 60 SYS “Font_FindFont”,,“Trinity. Medium”,50*16,50*16 TO hdl%
  24941. 5.11
  24942. 70 SYS “Font_SetFont”,hdl%
  24943. 5.11
  24944. 80 REM Kerning off first
  24945. 5.11
  24946. 90 SYS “Font_Paint”,,“WAWA no
  24947. 5.11
  24948. kerning here!“,%0000010000,10,500
  24949. 5.11
  24950. 100 REM Kerning on now
  24951. 5.11
  24952. 110 REM Set bit 9 in R2
  24953. 5.11
  24954. 120 SYS “Font_Paint”,,“WAWA this is kerned.”,%1000010000,10,300
  24955. 5.11
  24956. 130 SYS“Font_LoseFont”,hdl%
  24957. 5.11
  24958. The ease with which this can be done leads me to wonder why CC haven’t
  24959. provided it as an option in Impression.
  24960. 5.11
  24961. To rotate fonts, set bit seven of R2 in “Font_ Paint” and pass the (draw
  24962. style) transformation matrix in R7. Note that old style calls to
  24963. “Font_StringWidth”, etc don’t take account of kerning or transformation.
  24964. A new SWI “Font_ ScanString” is used to do this. Rob Davison, New
  24965. Zealand
  24966. 5.11
  24967. •   Basic 1.05 Bug − A really annoying bug exists in all versions of Basic
  24968. except the floating point version supplied on the RISC-OS 3 application
  24969. discs.
  24970. 5.11
  24971. Consider the following two statements (type them in if you feel like
  24972. it.)
  24973. 5.11
  24974. a=210
  24975. 5.11
  24976. b=2.10*100
  24977. 5.11
  24978. These two variables should hold the same value. They seem to be the
  24979. same, as you can check with:
  24980. 5.11
  24981. PRINT a,b
  24982. 5.11
  24983. IF a=b PRINT “SAME”
  24984. 5.11
  24985. etc.
  24986. 5.11
  24987. If you have RISC-OS 2 then both the above checks will say that they are
  24988. the same. RISC-OS 3 Basic 1.05 will not print ‘SAME’ in the second test.
  24989. The reason for this can be revealed by trying the following:
  24990. 5.11
  24991. PRINT INT(a),INT(b)
  24992. 5.11
  24993. PRINT STR$(a),STR$(b)
  24994. 5.11
  24995. These problems seem to occur because of the limited accuracy of floating
  24996. point numbers in Basic. My program stored times at centisecond resolu
  24997. tion internally and I wanted to scale these times to seconds for the
  24998. user. I did a usertime=centitime/100 but ran into problems when I tried
  24999. converting the usertime variable back into a string with STR$(usertime)
  25000. 5.11
  25001. My solution (and I’m not saying it’s a good one) is as follows:
  25002. 5.11
  25003. A short ARM code routine intercepts the WRCHV vector and stores
  25004. characters printed in a buffer. The routine is linked in just before a
  25005. PRINT realvar statement and killed off just afterwards. You can then
  25006. extract the string from the buffer via normal means. An example program
  25007. follows:
  25008. 5.11
  25009. 10 REM >string
  25010. 5.11
  25011. 20 REM provides a STR$( function
  25012. 5.11
  25013. 25 REM that avoids some floating
  25014. 5.11
  25015. 30 REM point problems in Basic
  25016. 5.11
  25017. 40 REM By Rob Davison, May 1992
  25018. 5.11
  25019. 50 REM Public Domain
  25020. 5.11
  25021. 60 REM
  25022. 5.11
  25023. 70 PROCassy
  25024. 5.11
  25025. 80 PRINT “First the old way -”
  25026. 5.11
  25027. 90 PRINT STR$(2.10*100)
  25028. 5.11
  25029. 100 PRINT “Should be ”;FNstr(2.10 *100)
  25030. 5.11
  25031. 110 PRINT’“Another example”
  25032. 5.11
  25033. 120 PRINT STR$(0.6)
  25034. 5.11
  25035. 130 PRINT “Should be ”;FNstr(0.6)
  25036. 5.11
  25037. 140 PRINT’“Bye now.”
  25038. 5.11
  25039. 150 END
  25040. 5.11
  25041. 160 DEFPROCassy
  25042. 5.11
  25043. 170 DIM code% &100
  25044. 5.11
  25045. 180 REM ’possy’ is a buffer. Can be scratch space but MUST
  25046. 5.11
  25047.  be big enough.
  25048. 5.11
  25049. 190 DIM possy &100
  25050. 5.11
  25051. 200 FOR opt=0 TO 2 STEP2
  25052. 5.11
  25053. 210 P%=code%
  25054. 5.11
  25055. 220 [OPT opt
  25056. 5.11
  25057. 230 .intercept
  25058. 5.11
  25059. 240 STMFD R13!,{r0-r3 }
  25060. 5.11
  25061. 250 LDR R1,posaddr
  25062. 5.11
  25063. 260 STRB R0,[R1]
  25064. 5.11
  25065. 270 ADD R1,R1,#1
  25066. 5.11
  25067. 280 STR R1,posaddr
  25068. 5.11
  25069. 290 LDMFD R13!,{r0-r3 ,PC}
  25070. 5.11
  25071. 300 .posaddr EQUD possy
  25072. 5.11
  25073. 310 ]
  25074. 5.11
  25075. 320 NEXT
  25076. 5.11
  25077. 330 ENDPROC
  25078. 5.11
  25079. 340 REM this is the string function
  25080. 5.11
  25081. 350 DEFFNstr(number)
  25082. 5.11
  25083. 360 LOCAL ERROR
  25084. 5.11
  25085. 370 ON ERROR LOCAL SYS “XOS_Release” ,3,intercept,0:REPORT:PRINT ERL:END
  25086. 5.11
  25087. 380 !posaddr=possy:REM reset pointer to start of buffer
  25088. 5.11
  25089. 390 SYS “XOS_Claim”,3,intercept,0 :REM claim the vector
  25090. 5.11
  25091. 400  PRINT number
  25092. 5.11
  25093. 410 SYS “XOS_Release”,3,intercept,0 :REM and release it immediately
  25094. 5.11
  25095. 420 REM Extract the string and get rid of leading/trailing rubbish
  25096. 5.11
  25097. 430 str$=$possy:WHILE LEFT$(str$,1)= CHR$32:str$=RIGHT$(str$,
  25098. 5.11
  25099. LEN(str$)-1):ENDWHILE
  25100. 5.11
  25101. 440 WHILE ASC(RIGHT$(str$,1))<32: str$=LEFT$(str$,LEN(str$)-1)
  25102. 5.11
  25103. :ENDWHILE
  25104. 5.11
  25105. 450 =str$
  25106. 5.11
  25107. Rob Davison, New Zealand
  25108. 5.11
  25109. •   Basic V rounding errors − Last month, (Archive 5.10 p19) Mr E. Hollox
  25110. asked for help with the STR$ rounding. I hope that the following will
  25111. help solve his problem. No actual specifics were given on his problem,
  25112. so I’ve assumed that he’s working with monetary units (i.e. two decimal
  25113. places). This may not be correct in this instance, but will probably be
  25114. relevant to a large number of users and should provide Mr Hollox with a
  25115. starting point for the solution he wants.
  25116. 5.11
  25117. In simple terms, the solution is to avoid decimals; to work only with
  25118. integer variables. At first glance this may sound like an odd solution
  25119. when a number of decimal places are required, but it’s not as strange as
  25120. you may think.
  25121. 5.11
  25122. Firstly, the use of integer variables does not restrict you to the use
  25123. of integer numbers − not when you are making use of STR$, anyway.
  25124. 5.11
  25125. Secondly, integers make for faster programs, as I’m sure everyone
  25126. realises (unless they program an Atari ST in GFA or Atari Basic!)
  25127. 5.11
  25128. Thirdly, and more importantly, integers are far more accurate than real
  25129. numbers due to the way in which they are stored. The method of storage
  25130. does have a negative effect, however, in that your range of numbers is
  25131. restricted − though the range available should be enough for most
  25132. people’s needs. Page 21 of the Archimedes’ BBC Basic Guide details this.
  25133. Remember that the more decimal places you require, the lower the range
  25134. becomes.
  25135. 5.11
  25136. So, onto the solution to the problem...
  25137. 5.11
  25138. Your ‘real’ number must be stored as an integer 100 (for 2 dp users)
  25139. times as big. Whenever any output is required, a routine must be used to
  25140. convert it to a string and insert a decimal point at the correct place.
  25141. For inputting, the reverse is required; the decimal point must be
  25142. removed.
  25143. 5.11
  25144. The function FN_Int_To_Str carries out the decimalisation of your
  25145. integer number:
  25146. 5.11
  25147. DEF FN_Int_To_Str(Int%)
  25148. 5.11
  25149. LOCAL Real$
  25150. 5.11
  25151. Int%=ABS(Int%)
  25152. 5.11
  25153. IF Int%<10 THEN Real$=
  25154. 5.11
  25155. “      00”+STR$(Int%)
  25156. 5.11
  25157. IF Int%>=10 AND Int%<100 THEN Real$=“      0”+STR$(Int%)
  25158. 5.11
  25159. IF Int%>=100 THEN Real$=RIGHT$
  25160. 5.11
  25161. (“        ”+STR$(Int%),9)
  25162. 5.11
  25163. Real$=LEFT$(Real$,7)+“.”+
  25164. 5.11
  25165. RIGHT$(Real$,2)
  25166. 5.11
  25167. =Real$
  25168. 5.11
  25169. You must call the function with string$=FN_Int_ To_Str(number%) where
  25170. string$ is your variable to hold the decimalised string and number% is
  25171. your variable holding the stored number. The routine returns the number
  25172. as a string with two decimal places, and right justified (in a ten
  25173. character field).
  25174. 5.11
  25175. The minus symbol ruins the simplicity of the routine, so an absolute
  25176. value is taken of the number. Minus numbers aren’t difficult to cope
  25177. with but, as they weren’t part of the problem....
  25178. 5.11
  25179. The function works by converting the integer number to a string and then
  25180. adding spaces to the left in order to right align it. This is done by
  25181. the three IF statements and, possibly, is the more complex part of the
  25182. routine.
  25183. 5.11
  25184. In the first case, the number is lower than ten (i.e. 0 to 9) so the
  25185. final figure will be of the form “      0.0x” − hence six spaces and two
  25186. zeros are added.
  25187. 5.11
  25188. In the second case, the number is in the range 10 to 99, so the figure
  25189. will be “      0.xx” − six spaces and one zero are added.
  25190. 5.11
  25191. In the third case, the number is over 100 (over 1.00). In this case,
  25192. rather than add the correct number of spaces for its size (6 for 100 to
  25193. 999, 5 for 1000 to 9999, etc.) we add the maximum required and truncate
  25194. the resulting string to its rightmost nine characters.
  25195. 5.11
  25196. The result, in all three cases, is a right aligned integer number in a
  25197. nine character string.
  25198. 5.11
  25199. Then we have the easy bit. The first seven characters of the string are
  25200. taken, a decimal point added, then the last two digits − problem solved.
  25201. 5.11
  25202. The reverse function is even simpler:
  25203. 5.11
  25204. DEF FN_Str_To_Int(Real$)
  25205. 5.11
  25206. LOCAL Int%
  25207. 5.11
  25208. Real$=FN_FormatNumber(Real$)
  25209. 5.11
  25210. Int%=VAL(LEFT$(Real$,7))*100+
  25211. 5.11
  25212. VAL(RIGHT$(Real$,2))
  25213. 5.11
  25214. =Int%
  25215. 5.11
  25216. This function is called with number%=FN_Str_ To_Int(string$) where
  25217. string$ is your variable containing the string and number% is the
  25218. variable that will contain the integer number.
  25219. 5.11
  25220. The first thing the function does is to pass the string to another
  25221. function in order to ensure it is of the correct format before convert
  25222. ing it to a number. This is dealt with below.
  25223. 5.11
  25224. The function then calculates the integer part of the number (positions 1
  25225. to 7 within the string), multiplies this by 100, and adds the fractional
  25226. part of the number (positions 9 to 10 − after the decimal point.) The
  25227. result, an integer number 100 times the real number, is returned to the
  25228. calling routine.
  25229. 5.11
  25230. I could have simply used Int%=VAL(Real$)*100, making the routine much
  25231. simpler. Then the inaccuracy of real numbers is risked once more. In
  25232. between Real$ and Int%, the number is stored as real until it is
  25233. multiplied by 100 and put in the integer variable. The method I’ve used
  25234. circumvents this risk, but introduces another factor. The format of the
  25235. number within the string must be correct. For the above conversion to
  25236. work, this must be a two decimal place number, with the decimal point as
  25237. the eighth character of the string. This is where the third formula
  25238. comes in:-
  25239. 5.11
  25240. DEF FN_FormatNumber(Number$)
  25241. 5.11
  25242. LOCAL Length%,Point%
  25243. 5.11
  25244. Length%=LEN(Number$)
  25245. 5.11
  25246. Point%=INSTR(Number$,“.”)
  25247. 5.11
  25248. IF (Point%=Length%-1) AND
  25249. 5.11
  25250. (Point%>0) THEN Number$=Number$+“0”
  25251. 5.11
  25252. IF (Point%=Length%) AND (Point%>0) THEN Number$=Number$+“00”
  25253. 5.11
  25254. IF Length%=0 THEN Number$=“0”
  25255. 5.11
  25256. IF Point%=0 THEN Number$=Number$+ “.00”
  25257. 5.11
  25258. IF Point%=1 THEN Number$=“0”+ Number$
  25259. 5.11
  25260. Number$=RIGHT$(“       ”+Number$ ,10)
  25261. 5.11
  25262. =Number$
  25263. 5.11
  25264. This routine looks far more complicated than it actually is. The second
  25265. routine, above, passes its Real$ to this function which formats it to
  25266. two decimal places and ensures that the final string is 10 characters
  25267. long.
  25268. 5.11
  25269. In this sense, it is a routine that can be used independently of the
  25270. other two; by calling it with New$=FN_FormatNumber(Old$) where Old$ is
  25271. the unformatted number and New$ is the result.
  25272. 5.11
  25273. It works by determining first the length of the string, then the
  25274. position of the decimal point within the string. With a two decimal
  25275. place number, the position of the point would be 2 less than the length
  25276. of the string.
  25277. 5.11
  25278. The first IF statement adds a single zero if the position of the point
  25279. is 1 less than the string’s length but only if the decimal point’s
  25280. position is larger than zero − in which case the number is an integer
  25281. and would have been accidentally multiplied by ten.
  25282. 5.11
  25283. The second IF adds a double zero if the point is at the end of the
  25284. string. This is not done if the position of the point is zero, in which
  25285. case the string is null and represents nothing.
  25286. 5.11
  25287. The third makes the string equal to “0” if it is found to be null.
  25288. 5.11
  25289. The fourth adds “.00” to the end of the string if there is no decimal
  25290. point − i.e. if the number is an integer.
  25291. 5.11
  25292. The combination of the third and fourth IF’s result in the null string
  25293. (“”) becoming “0.00”
  25294. 5.11
  25295. The fifth IF adds a zero to the string if the decimal point is at the
  25296. very beginning − if the number is lower than one and is lacking the
  25297. leading zero.
  25298. 5.11
  25299. Finally, before returning the result, a number of spaces are added to
  25300. the left of the number which is then truncated to the rightmost ten
  25301. characters. Hey presto, a nicely formatted number.
  25302. 5.11
  25303. The three routines are on the enclosed disk, in the form of a procedure
  25304. library − details of how to use such are on page 92 of the BBC Basic
  25305. Guide.
  25306. 5.11
  25307. Though the routines, as given, are for numbers with two decimal places −
  25308. and with a field width of ten − it shouldn’t be too difficult to alter
  25309. them for other requirements. Unfortunately, the higher the number of
  25310. decimal places, the more (and more complicated) IF’s are required. It
  25311. shouldn’t be too difficult to write routines that accept the number for
  25312. conversion, together with the number of decimal places and the field
  25313. width but, as I said before, this was just intended to provide Mr Hollox
  25314. with a starting point for his solution. Vince Hudd, Soft Rock Software.
  25315. 5.11
  25316. •   Bible Master with RISC-OS 3 − Having found a list of verses or cross
  25317. references, it is possible to import the text into an Archimedes word
  25318. processing (or DTP) package.
  25319. 5.11
  25320. (i) Load the PC text into !Edit and then
  25321. 5.11
  25322. (ii) Use the wildcard search and replace option searching for %[ $x76-
  25323. xFF] (note that the square brackets start with a space) and replacing
  25324. with a space.
  25325. 5.11
  25326. This will remove all the screen control characters and multiple spaces. 
  25327. The resulting text can then be saved and/or loaded into most word
  25328. processors.  S Wright, Basingstoke
  25329. 5.11
  25330. •   Deskjet 500C and RISC-OS 3 − Recent contributors on the subject of the
  25331. HP Deskjet 500C have tended to concentrate on the best type of paper to
  25332. use. I will not attempt to further that debate, but rather recount my
  25333. efforts to produce envelopes to match the quality of their contents.
  25334. This turned out to be less straightforward than I had expected but I
  25335. eventually succeeded. Most of my printing is from Impression Junior, so
  25336. the following will apply to Impression II users and, although I am using
  25337. an A5000,  the RISC-OS 2  drivers are not crucially different.
  25338. 5.11
  25339. Using the Alter Pages sub-menu in Junior, create a custom page the same
  25340. size as the envelope. A standard A4 envelope seems to be 218mm by 110mm.
  25341. Create a suitable frame for the name and address and save the file as
  25342. ‘envelope’. Load the !Printers application and create a custom page of
  25343. the same size, also called ‘envelope’. I have used margins of 10mm all
  25344. round which show up unambiguously in the Junior window. Click on <Save
  25345. Settings> in the page set-up menu and <Save Choices> from the main menu.
  25346. Go to the ‘configure’ option from the printer control menu, select the
  25347. new ‘envelope’ option and click on OK. The printer margins will now be
  25348. visible in the Junior window. Insert an envelope face down in the out-
  25349. tray of the printer, sliding it into the guide slots provided and
  25350. keeping the right hand edge against the edge of the tray. At this point,
  25351. the HP manual is misleading. Do NOT press the envelope button on the
  25352. printer. Simply press <Print> on the computer and then <Return>. The
  25353. envelope will now be properly printed. If the envelope button on the
  25354. printer has been pressed, the envelope will be passed disdainfully
  25355. through the printer and the address will appear on the next sheet of
  25356. paper from the in-tray.
  25357. 5.11
  25358. In the prison where I work, I have recently been involved in running an
  25359. Anger Control Programme which required a couple of dozen overhead
  25360. projector transparencies. These can be produced to a high standard on
  25361. the 500C and, of course, in full colour. The transparencies used must be
  25362. designed for use with inkjet printers since they require a special
  25363. material to absorb the ink. There is, however, one major problem − the
  25364. appropriate material is rather expensive. Hewlett Packard’s own
  25365. transparencies cost about £75 inc. VAT for a box of 100. For me, this is
  25366. too many and far too much money. Eventually, I found that NOBO produce a
  25367. box of 50 for a slightly lower price per transparency and these should
  25368. be available from a good office supplies firm. The inadequate black
  25369. produced by the colour cartridge on the 500C is particularly noticeable
  25370. on an OHP and I found that a more satisfactory result could be obtained
  25371. by printing each transparency twice; once for black and once for the
  25372. coloured areas. Registration seems not to be a problem for the bold text
  25373. and graphics which are the norm for this kind of presentation. This
  25374. technique also saved an awful lot of expensive, coloured ink.
  25375. 5.11
  25376. Incidentally, the UNDO facility on RISC-OS3 !Draw(or in !DrawPlus) was a
  25377. considerable help in creating the colour ‘separations’ for this process.
  25378. I could delete either the black or the coloured areas of the image
  25379. before printing and restore them by pressing <F8>.  A Trout, Lancs.
  25380. 5.11
  25381. •   Deskjet 500 DIP switches − For those just buying Deskjet 500 printers,
  25382. it may be worth knowing that the default setting of the DIP switches is
  25383. not too helpful. Try the following settings instead...
  25384. 5.11
  25385.            Bank A                         Bank B
  25386. 5.11
  25387. 1 2 3 4 5 6 7 8   1 2 3 4 5 6 7
  25388. 5.11
  25389. ¯  ¯  ­  ­  ¯  ­  ¯  ­        ¯  ­  ¯  ¯  ¯  ¯  ¯
  25390. 5.11
  25391. This seems to work OK − it sets things like skip-over-perforation OFF
  25392. and A4 paper instead of some US size.  Steve Hutchinson, Gloucester.
  25393. 5.11
  25394. •   Dragging solid sprites − RISC-OS 3 has, built in, the ability to solid
  25395. drag sprites from save dialog boxes. The solid drag option is stored in
  25396. CMOS in a ‘hidden’ location on bit 1 of byte 28. The following commands
  25397. will set bit 1 without disturbing anything else in this byte.
  25398. 5.11
  25399. *Basic
  25400. 5.11
  25401. SYS “OS_Byte”,161,28 TO ,,v%
  25402. 5.11
  25403. v%=v% OR %10
  25404. 5.11
  25405. SYS “OS_Byte”,162,28,v%
  25406. 5.11
  25407. Now try saving a file from Draw/Edit/Paint, etc.
  25408. 5.11
  25409. (Comparing the A5000 to an A440/1+30Mhz ARM3, the 440 runs at about the
  25410. same speed as the A5000 in mode 12, but at about 1/3 of the speed in
  25411. mode 28.)  Rob Davison, New Zealand
  25412. 5.11
  25413. •   Personalised application templates − Many users may not have realised
  25414. that it is often possible to alter the windows and templates used by an
  25415. application. Most programmers use the FormEd application or one of its
  25416. derivatives to create a Template file which contains the window
  25417. definitions used by the program and this can often be seen in the
  25418. application directory normally called, not surprisingly, Templates.
  25419. 5.11
  25420. If you have a copy of FormEd, which is supplied with all Acorn’s
  25421. compilers but is also available from most PD libraries (Shareware Disc
  25422. 20, Ed), you can load these templates and alter them to suit your own
  25423. ideas and preferences. What you must not do is change the number of any
  25424. of the icons or the program won’t behave properly. You must also be
  25425. careful if you create any extra icons that they don’t overlay any
  25426. existing button icons since the Wimp doesn’t report clicks on icons
  25427. which are hidden behind others with a higher number.
  25428. 5.11
  25429. As an illustration, I have included a set of modified windows for Edit.
  25430. Since some of these now use sprites there is also a sprite file and you
  25431. must insert a line to load these in the !Run file or the windows will
  25432. look rather bare. For simplicity, I have included a !Run file with the
  25433. extra line in it.
  25434. 5.11
  25435. Rename your existing !Run and Templates files something else (in case
  25436. you don’t like mine) and copy the files !Run, Templates and sprites2
  25437. into the !Edit application directory. Now when you run Edit the new
  25438. windows will be used.
  25439. 5.11
  25440. Note that the main text window is also changed. When Edit opens a new
  25441. file the main text window opens in whatever form the template was
  25442. created. Just load the Templates file into FormEd and drag the text
  25443. window around the screen and resize it until you are satisfied. Then
  25444. save the templates. Next time you open an Edit window, that is the size
  25445. and position it will assume.
  25446. 5.11
  25447. I don’t claim that these examples are particularly brilliant but they
  25448. are certainly an improvement on the original and will help to show how
  25449. you can customise standard programs. David Holden, Sydenham.
  25450. 5.11
  25451. •   Pinboard problems − Several people (well, at least two anyway!) appear
  25452. to have had problems with Pinboard running under RISC-OS 3. It would
  25453. seem that the Pinboard module is automatically UNPLUGged following an
  25454. exit from the desktop. One solution involves using an alias to re-
  25455. initialise the Pinboard. If you have a desktop !Boot file then, before
  25456. the Pinboard command (if there is one), insert something like the
  25457. following:
  25458. 5.11
  25459. Set Alias$NewDesktop %RMreinit Pinboard |m %Desktop |m
  25460. 5.11
  25461. Obviously, in place of NewDesktop you can use any name that you like
  25462. (note that abbreviations still work so, in this case, you could use New.
  25463. to carry this out.)  If you wish to re-run the !Boot file on exiting
  25464. from command line mode, add -F !Boot after the %Desktop command.  If you
  25465. do not have a desktop !Boot file, use the Desktop Boot function from the
  25466. Acorn menu on the iconbar.
  25467. 5.11
  25468. From now on, to get back from the command line (after using the Exit
  25469. option), type New.  (or your appropriate alias) rather than Desktop.
  25470. 5.11
  25471. Simon Moy, Norwich Computer Services.
  25472. 5.11
  25473. •   Truncated filenames and RISC-OS 3 − It took me a long time to discover
  25474. that you type *Configure Truncate off  to stop the O.S. automatically
  25475. truncating filenames when saving and therefore (possibly) overwriting an
  25476. old version of a file which I wanted to keep!  A
  25477. 5.11
  25478.  
  25479. Hints and Tips
  25480. 5.12
  25481. •   Free Space − (Ref to Archive 5.11 p21) − The call to check the amount
  25482. of free space on a disc is ADFS_FreeSpace. On entry, R0 points to the
  25483. disc specifier and on exit R0 contains the free space and R1 contains
  25484. the size of the largest object that can be created. E.g.
  25485. 5.12
  25486. SYS“ADFS_FreeSpace”,“:0” to free%,largest%
  25487. 5.12
  25488. Change the ADFS to RamFS, SCSIFS or whatever you’re using.
  25489. 5.12
  25490. •   Free space on hard discs − For some time I had been concerned by the
  25491. apparent discrepancy between the figures returned by COUNT and FREE for
  25492. the space used by files on my SCSI discs. I was aware that COUNT only
  25493. counts the actual files and that FREE counts all the space used but I
  25494. still felt uneasy and my discs seemed to fill up alarmingly quickly.
  25495. 5.12
  25496. ADFS floppies use 2k for every directory and there is an initial 4k
  25497. overhead for the map on E format discs. My impression was that the same
  25498. amount of space would be used for each directory in all Filecore
  25499. systems, including SCSI, but that the map would take more space
  25500. depending on the size of the disc.
  25501. 5.12
  25502. So the first thing I did was to estimate the number of directories on my
  25503. 120M disc. I make full use of the directory structure to organise my
  25504. data, not to any great depth but with some width. RISC-OS encourages
  25505. this and, of course, applications are directories too. I reckoned there
  25506. were well over 1000 directories on the disc, but at 2k per directory,
  25507. this did not account for the difference.
  25508. 5.12
  25509. With a little experiment of adding a directory and looking for the
  25510. change in free space, I found that a directory was taking a staggering
  25511. 28k! This was where the space was going, but why?
  25512. 5.12
  25513. My Oak SCSI card is managed by their SCSIForm program which allows some
  25514. flexibility in defining the format of the disc. Having backed-up, I did
  25515. some experimenting with the parameters.
  25516. 5.12
  25517. I changed the sector size, but the minimum value for the 120M disc was
  25518. 512 bytes and, for a 42M removable was 256 bytes. I imagine the lowest
  25519. possible value of 128 bytes is only for small discs. Anyway, the changes
  25520. I made had only very small effects on space or disc transfer times. The
  25521. default is 512 bytes per sector, so I left it at that.
  25522. 5.12
  25523. Next I changed the file allocation size. This defaults to 2k on the
  25524. large disc and 1k on the other. The minimum is 256 bytes. The larger
  25525. values are chosen, I believe, to speed up transfer times to large files
  25526. on larger discs. I did not think this parameter would have an effect on
  25527. the structure, but look at the table below. The results were impressive.
  25528. For a loss of transfer time of less than 5% I was gaining a saving on
  25529. structure of 7 times! There were similar results for the smaller disc.
  25530. 5.12
  25531.    File Alloc’n  (bytes)   2048
  25532.    1024   512   256
  25533. 5.12
  25534.    Map Space (k)   57   47
  25535.    68.5   124
  25536. 5.12
  25537.    Dir’y Space  (k each)   28   15
  25538.    7.5   4
  25539. 5.12
  25540.    Mode 0   (k/sec)   1959   1864
  25541.    1864   1864
  25542. 5.12
  25543.    Mode 21  (k/sec)   994   955
  25544.    955   955
  25545. 5.12
  25546. I have not delved any further into why more than 2k per directory is
  25547. taken in SCSI but the figures suggest 14 blocks are used: 13 are <256
  25548. bytes and the other is 512-768 bytes.
  25549. 5.12
  25550. When I settled on a file allocation size of 256 bytes, I recovered about
  25551. 30M of extra space on the larger disc − about £200 worth, perhaps. Some
  25552. of this saving comes from taking much less space for the multitude of
  25553. small !Run,!Boot and !Sprites files.
  25554. 5.12
  25555. The only other make of SCSI of card I have access to is a Cumana one in
  25556. school, running in a fileserver for 600 users. This too has 1000+
  25557. directories. The Cumana SCSIManager program only offers formatting with
  25558. default values, so I changed the format using my Oak card and made
  25559. similar impressive savings. The disc runs happily with the Cumana card,
  25560. as you would expect, but will not dismount. This is no penalty with
  25561. self-parking heads.
  25562. 5.12
  25563. I then found an old ADFS hard drive and did the same check, finding that
  25564. a new directory takes 12k. RAMFS takes a straight 2k. I would be
  25565. interested to know if the same problem applies to IDE discs and what
  25566. formatting is possible with other SCSI cards.  Steve Drain, Portland.  A
  25567. 5.12
  25568.  
  25569.  
  25570.  
  25571.  
  25572. Impression Hints & Tips
  25573. 5.12
  25574. Ŷ•   Problems with version 2.17 − If you are having problems with version
  25575. 2.17 − such as the machine hanging up when you select large areas of
  25576. text − don’t blame Impression! Basically, what is happening is that CC
  25577. have implemented message-passing via the Wimp for their thesaurus and
  25578. these messages are rather large. This is a perfectly valid thing to do
  25579. under Acorn’s RISC-OS programming guidelines but not all filing systems
  25580. have been written to allow for such large messages and they end up over-
  25581. writing areas of memory − hence the crashes. Filing system versions
  25582. known to be a problem are:
  25583. 5.12
  25584.    Oak SCSI version 1.11
  25585. 5.12
  25586.    Ian Copestake IDE version 1.13,
  25587. 5.12
  25588.    Serial Port IDE version 1.01, March ’91
  25589. 5.12
  25590. CC say... “If your Archimedes gives problems, contact your Acorn
  25591. supplier or the appropriate company. Please do not contact Computer
  25592. Concepts − these problems are not caused by Impression but by the filing
  25593. system.”
  25594. 5.12
  25595. The Oak SCSI filer 1.11 has been replaced by version 1.16 but this ‘new’
  25596. version (actually two years old!) is available through Archive as an
  25597. upgrade for £12 inc VAT.
  25598. 5.12
  25599. The ICS filer 1.13 can be swapped for version 1.14 as a free EPROM
  25600. exchange from ICS. They also have a completely re-written IDE filer
  25601. (version 2) which is available from them for £15 +VAT. The customer
  25602. returns the old EPROM afterwards.
  25603. 5.12
  25604. The Serial Port filer 1.01 can be replaced with 1.02 as a free upgrade −
  25605. in this case, just send the floppy disc back to The Serial Port and they
  25606. will replace it.
  25607. 5.12
  25608. • Using borders − From David Wooldridge comes one of those tips that is
  25609. obvious to the initiated but might be new to some users. When choosing a
  25610. border in the Alter Frame window (view mode), don’t forget you can see
  25611. the various borders by pointing at the white border in the window and
  25612. pressing menu. A border picker window opens, allowing you to select from
  25613. all the available borders. This tip is in the manual but, as we all
  25614. know, not everyone reads manuals − own up, please, if this is new to
  25615. you! (Me for one! Ed.)
  25616. 5.12
  25617.  
  25618.  
  25619.  
  25620. The Readers Write!
  25621. 5.12
  25622. • Laser Jet printing with RISC-OS3 − Gerald Fitton (of Pipeline fame!)
  25623. has experienced a problem when using RISC-OS 3, !Printers, Laser Jet II
  25624. and Impression. He has found that documents in the portrait format print
  25625. 7 mm out of position on the vertical axis and are offset 5mm to the
  25626. right. This occurs even when the page borders are set to 0 mm. If he
  25627. increases the latter figure, the print out is further out of position.
  25628. As Gerald says, ‘What I need is a minus value for my borders. Help!’ Has
  25629. anyone else come across this particular problem?
  25630. 5.12
  25631. • Keeping track of Draw and Sprite files − In Archive 5.9 p37 Steve
  25632. Hutchinson was asking advice on keeping track of his Draw and sprite
  25633. files and was recommended two viewing applications. There is also an
  25634. easy hardcopy method namely !PicList which was on the Acorn User October
  25635. 1991 disc after being upgraded from the May version. The application
  25636. makes a set of sprite “pages” containing any Draw or sprite pictures
  25637. that are dropped into it. The pictures are displayed in a grid and are
  25638. labelled with their name/path above them. The application is easy to use
  25639. from the iconbar having options to:
  25640. 5.12
  25641. •   Set up the size of the “page” (defaults to print size if a driver is
  25642. loaded),
  25643. 5.12
  25644. •   Set the number of columns and rows required − depending on the
  25645. required detail of each picture,
  25646. 5.12
  25647. •   Set the screen mode for the resultant “pages”,
  25648. 5.12
  25649. •   Choose the path/name format to name each picture.
  25650. 5.12
  25651. You can drop directories onto the icon and several pages are generated.
  25652. The pages can be stepped through to view and saved to make a hardcopy of
  25653. each page. Alan Wilburn, Hartlepool.
  25654. 5.12
  25655. • Auto destruct! − In the Hints and Tips section of the June edition of
  25656. Archive, there was a mention of possible problems with the auto-save
  25657. facility of Impression under the title “Auto-destruct!”. Version 2.16
  25658. (and 2.17) of Impression does not appear to be as dangerous in this
  25659. respect. If the auto-save facility is turned on but with the “With
  25660. prompt” switch left off, a prompt will still appear on-screen before the
  25661. first time the document is auto-saved.
  25662. 5.12
  25663. This also occurs the first time the document is auto-saved after it has
  25664. been reloaded. It is mentioned in the Impression 2.15 release notes on
  25665. pages 1 and 3.
  25666. 5.12
  25667. Still on the subject of Impression, I have two problems that readers of
  25668. Archive may be interested in:
  25669. 5.12
  25670. Spelling checker − If you check and replace a misspelled word by using
  25671. <Ctrl-W> to invoke the spelling checker, this appears to work correctly
  25672. except that if you have typed nothing after the word, it also has the
  25673. effect of <Ctrl-B> and returns you to basestyle. Obviously the solution
  25674. is to always type at least a space after the word before using <Ctrl-W>.
  25675. 5.12
  25676. PrintBJ (the extension module to print draft text) − This makes a
  25677. reasonable attempt at interpreting styles as far as different fonts and
  25678. font sizes are concerned but seems unable to cope with rulers or effects
  25679. that control the position of the text on the page. Tabs it gets
  25680. completely wrong, right aligned text is centred, centred text is centred
  25681. but using a page width about three quarters of the actual width. This is
  25682. using the Canon BJ-10e. I have phoned Computer Concepts who suggested I
  25683. wrote enclosing example documents both printed and on disc. This I did
  25684. several months ago and have not received a reply. Has anyone else
  25685. experienced these problems or indeed found a solution? Nick Edgar,
  25686. Doncaster.
  25687. 5.12
  25688. I can understand Nick’s problems and only print out in graphics format.
  25689. My method of working for proofing documents is always to print at a
  25690. lower resolution − and hence achieve a quicker print out. Users of the
  25691. Deskjet 500 have the option of using the draft mode on the printer for
  25692. this purpose and leaving the resolution set on the driver unchanged.
  25693.  
  25694. Hints and Tips
  25695. 6.1
  25696. •   Alt characters − On upgrading from RISC-OS 2 to RISC-OS 3.1, I thought
  25697. I had lost my ‘×’ character. I eventually found that it had moved from
  25698. <alt-,> to <shift-alt-,>. (Even on RISC-OS 3.0 on the A5000 it is still
  25699. <alt-,>.) So I investigated all the possible ALTernatives(!). Here are
  25700. all the ALT characters I found. They are laid out in QWERTY order but
  25701. where no special character appeared, the key is not included in the
  25702. list.
  25703. 6.1
  25704. key   ALT   shift ALT
  25705. `   ¬   °
  25706. 1   ¹   ¡
  25707. 2   ²  
  25708. 3   ³  
  25709. 4   ¼  
  25710. 5   ½  
  25711. 6   ¾  
  25712. 9      ±
  25713. r   ¶   ®
  25714. y      ¥
  25715. o   ø   Ø
  25716. p   þ   Þ
  25717. \      ¦
  25718. a   æ   Æ
  25719. s   ß   §
  25720. d   ð   Ð
  25721. f      ª
  25722. z   «  
  25723. x   »  
  25724. c   ¢   ©
  25725. m   µ   º
  25726. ,      ×
  25727. .      ÷
  25728. /      ¿
  25729. 6.1
  25730. I think that is all there is, but if anyone finds any more, let us know.
  25731. Ed.
  25732. 6.1
  25733. •   Annual service kit − In answer to Paul’s comment about hard drives in
  25734. Archive 5.12, p.8, I’d like to sing the praises of the Alarm application
  25735. (on one of the support disks or in ROM on RISC-OS 3). (You will see the
  25736. link if you read on! Ed)
  25737. 6.1
  25738. I, too, would have forgotten completely about the annual replacement of
  25739. filter and batteries, but for this application (which, thanks to my Boot
  25740. file, always resides on the iconbar): When my machine was a year old,
  25741. Alarm reminded me of this fact in no uncertain terms, (‘urgent’ alarm,
  25742. repeating every hour), so there was very little chance of overlooking
  25743. this necessary bit of maintenance. Jochen Konietzko, Köln, Germany.
  25744. 6.1
  25745. •   Apple Laser Writer II NT − Here is some information for anyone wanting
  25746. to make a cable link from an Archimedes to an Apple Laser Writer II NT.
  25747. The connections are as follows...
  25748. 6.1
  25749.    Archimedes   LaserWriter II NT
  25750.    Pin         Pin
  25751.    2   (RXD)   −−−−   3   (TXD)
  25752.    3   (TXD)   −−−−   2   (RXD)
  25753.    5   (0V)   −−−−   7   (0V)
  25754.    6   (DSR)   −−−−   20   (DTR)
  25755. The Archimedes pins DCD (1), DTR (4) and CTS (8) are all linked
  25756. together.
  25757. 6.1
  25758. When using a RISC-OS printer driver you should choose the Serial
  25759. connection with 9600 baud rate, 8 data bits, no parity and 1 stop bit. 
  25760. XOn/XOff protocol should also be used.
  25761. 6.1
  25762. •   DDE Pascal − Some would-be users of DDE !Pascal (on Careware 17) will
  25763. have discovered that it won’t function in Computer Concepts’ Compressed
  25764. Filing System (CFS), where it generates the error ‘Special field not
  25765. allowed in filesystem prefix to OS_CLI’. This means that the command
  25766. line interpreter, which is invoked to run the Pascal tool, objects to
  25767. some pathname which begins with the prefix ‘CFS#’. The offending
  25768. pathname turns out to be the <Pascal$Dir>.Pascal, as assigned into
  25769. Alias$Pascal by the !Run file with the apparent function of enabling the
  25770. compiler to be located in the application directory. The remedy is to
  25771. comment out the line which assigns Alias$Pascal and move the compiler
  25772. (i.e. <Pascal$Dir>.Pascal) to your library. This brings the configura
  25773. tion into line with that of the C compiler and other DDE tools and
  25774. causes ‘*Pascal’ commands to be serviced by default from the current
  25775. library without any explicit reference to a filesystem.  Mike Kinghan,
  25776. Oxford
  25777. 6.1
  25778. •   DDE Pascal (Careware 17) − The release of the public-domain Norcroft
  25779. Pascal compiler for the Archimedes is potentially extremely useful,
  25780. since, although ISO-Pascal is very good, it does not interface well with
  25781. the operating system. More seriously, programs compiled with ISO-Pascal
  25782. do not interface well either.
  25783. 6.1
  25784. The Norcroft system is easy to use and install and does everything that
  25785. is claimed of it. Unfortunately, users should be aware of some problems,
  25786. especially since Acorn obviously does not wish to maintain the product.
  25787. 6.1
  25788. I have some extra severe tests for Pascal, which I have used to test the
  25789. compiler. This shows that the compiler has some errors in the evaluation
  25790. of set expressions: the following program failed (printing True rather
  25791. than False):
  25792. 6.1
  25793. {4 5 6 4 0 3    3000 }
  25794. {the parameters from the full test which failed. }
  25795. program test (output);
  25796. const
  25797.    ten = 10;
  25798. var
  25799.    i: 1..ten;
  25800. begin
  25801. i := 11; (compilation error here?)
  25802. i := ten + 1; (compilation error here?)
  25803. writeln(‘Error not detected‘) ;
  25804. end.
  25805. 6.1
  25806. The first error is caught at compile-time by almost all Pascal com
  25807. pilers, including ISO-Pascal. The second error is caught by almost all
  25808. compilers at run-time, and a few at compile-time.
  25809. 6.1
  25810. When using the quit option in the Pascal menu, the system still allows
  25811. command line usage of Norcroft Pascal, although the icon is removed.
  25812. 6.1
  25813. The final significant problem is that programs written in ISO-Pascal do
  25814. not necessarily compile without the ISO option being set. This is
  25815. annoying, since many programs will wish to use some extensions. I don’t
  25816. know of any other Pascal compiler for which the extension option means
  25817. less (in some cases).  Brian Wichmann, NPL.
  25818. 6.1
  25819. •   Directory size − Regarding the issue on directory sizes, etc in the
  25820. hints & tips section, there are a few other points...
  25821. 6.1
  25822. RISC-OS 2 has some problems with certain combinations of disk size and
  25823. allocation unit, so beware. The problem usually causes the machine to
  25824. hang when entering a directory. I have only experienced this using large
  25825. allocation units on small disks.
  25826. 6.1
  25827. The fact that a new dir appears to take 38Kb isn’t the whole story, as I
  25828. believe that there is a facility for small files within a directory to
  25829. use some of the ‘wasted’ space. However, if you tend to have lots of
  25830. directories with few files, space does tend to get wasted.
  25831. 6.1
  25832. The best solution as far as both disk, space and speed is concerned is
  25833. to use D format, which uses the ‘correct’ amount of space for direc
  25834. tories and hardly anything for the map. (Remember that there are two
  25835. copies of the map in E format.) D format disks are also MUCH easier to
  25836. recover files from if the root directory or map gets corrupted and files
  25837. can never be fragmented (which slows down access). The only disadvantage
  25838. is the occasional need to compact but I find this a small price to pay.
  25839. I would only recommend E format for non-technical users.
  25840. 6.1
  25841. The same issues will apply to all FireCore based filling systems such as
  25842. IDE, etc.  Mike Harrison
  25843. 6.1
  25844. •   Impression/Squirrel − CC’s !Importer (also in their Business Supple
  25845. ment) is supplied by Digital Services with Squirrel. Here is some
  25846. experience that might help other people.
  25847. 6.1
  25848. Using Squirrel, I created a database with 22 fields. I then tried to
  25849. mail merge the resultant report CSV file using !Importer. I got an error
  25850. message saying ‘Subscript out of range (Code 6150).’ After some hours of
  25851. fiddling, I eventually found that if I reduced the number of fields in
  25852. the CSV file to 16, !Importer worked OK. Nick Horn, Thetford.
  25853. 6.1
  25854. •   Second internal hard drive in an A410/1 − I fitted a 40Mb ST506 hard
  25855. drive to my A410, thinking it would be more than adequate. However, with
  25856. the acquisition of the PC Emulator and the formation of a 10Mb DOS
  25857. partition, I was rapidly running out of room. I subsequently purchased a
  25858. second hand 20Mb ST506 drive, which I decided to fit internally rather
  25859. than buy a p.s.u., case and fan. I thought of making some mounting
  25860. brackets but, having seen an advert for a SPACE kit from PRES which
  25861. included brackets and all the leads, I changed my mind and went for
  25862. that. Price was £38.72 inc VAT. The work involved was to:
  25863. 6.1
  25864. 1)   Remove top two podule blanking plates.
  25865. 6.1
  25866. 2)   Fit metal brackets to drive using screws supplied.
  25867. 6.1
  25868. 3)   Remove the 34 way data cable and replace it with the one supplied,
  25869. connecting it to the existing drive and mother board (SK11), leaving
  25870. spare connector to connect to the second drive later.
  25871. 6.1
  25872. 4)   Connect the supplied 20 way control cable to the spare connector
  25873. (SK8) on the mother board, leaving the other end to be connected to the
  25874. second drive later.
  25875. 6.1
  25876. 5)   Remove the power cable from the psu and existing drive and replace
  25877. it with the supplied cable, leaving the spare connector for the second
  25878. drive.
  25879. 6.1
  25880. 6)   Lead all three cables to the back of the computer and through the
  25881. space left by removing the blanking plates and connect them to the
  25882. second drive.
  25883. 6.1
  25884. 7)   Attach the blanking plates to the metal brackets on the second
  25885. drive using nuts & bolts supplied.
  25886. 6.1
  25887. 8)   Ensure second drive is set to ‘1’ by changing the appropriate DIP
  25888. switch or DS-Jumper.
  25889. 6.1
  25890. 9)   Insert the drive through the back of computer until the front of
  25891. the brackets rests on backplane connectors (psu side) and the blanking
  25892. plates line up with the back of the computer. Screw in blanking plate
  25893. screws.
  25894. 6.1
  25895. 10)   Once computer is up and running it will have to be configured for
  25896. a second hard drive.
  25897. 6.1
  25898. The work was very easy to carry out and the instructions supplied were
  25899. very good. The drive then has to be formatted using Acorn’s HFORM
  25900. program. The program had to be modified to do the ‘slow’ formatting by
  25901. altering the following lines:
  25902. 6.1
  25903. 7530 REMmed out
  25904. 7540 REMmed out
  25905. 7550 REM removed
  25906. 7560 REM remove
  25907. 6.1
  25908. Once this was done, the drive formatted with no problems and, using the
  25909. PC Emulator’s configure program, I created a 19 Mb DOS partition.
  25910. 6.1
  25911. I would recommend this solution of gaining extra drive capacity if you
  25912. have access to a cheap drive and do not mind losing the space of two
  25913. half width podules.  Chris Bass, Grimsby
  25914. 6.1
  25915. •   Mah Jong from CIS − If you have recently purchased the Mah Jong game
  25916. from Cambridge International Software, you may wish to check for the
  25917. presence of a ‘benign’ virus. This can be done by double-clicking on the
  25918. !MahJong game while holding the <shift> key down. Choose the ‘Display >
  25919. Full Info’ option on the filer window. If the MemAlloc module is larger
  25920. that 2608 bytes then your copy is infected and you should contact CIS
  25921. directly at Unit 2a, Essex Road, London  N1 3QP or telephone
  25922. 071−226−3340.
  25923. 6.1
  25924. •   Measuring free space − I would like to say a big thank you to all the
  25925. people who wrote in response to my plea for help in finding a way of
  25926. checking, from within a program, whether there is enough space for a
  25927. file before it is saved.
  25928. 6.1
  25929. The most ingenious suggestion was to use the following commands:
  25930. 6.1
  25931. *FREE {ram:ccc }
  25932. X=OPENUP(“RAM:CCC”)
  25933. REPEAT B=BGET#X: UNTIL B=ASC“=”
  25934. REPEAT B=BGET#X
  25935.  IF B>47 AND B<58 B$=B$+CHR$B
  25936. UNTIL B=ASC“B”
  25937. *SHUT
  25938. 6.1
  25939. to put the free space in the variable B$.
  25940. 6.1
  25941. Some people pointed me to ‘ADFS_FreeSpace’ (also RamFS_FreeSpace,
  25942. SCSIFS_FreeSpace, etc.) which can be used with syntax such as:
  25943. 6.1
  25944. SYS “ADFS_FreeSpace”,Drive$ TO Free%,Largest%.
  25945. 6.1
  25946. The same information was given on page 7 of the Archive 5.12.
  25947. 6.1
  25948. Although all these answers have been very helpful, they have also taught
  25949. me a salutary lesson, namely that you have to be very precise when
  25950. describing your problem: because, although they have answered the
  25951. question (and told me things that I did not know) they haven’t actually
  25952. told me what I needed to know!
  25953. 6.1
  25954. What I actually want is a filing system independent way of finding out
  25955. whether a file with any given path name can be saved. For instance, if
  25956. the user of my program indicates (by dragging an icon to a filer window
  25957. or typing into a save box) that he wants to save a file with the path
  25958. name ‘XXXFS::$....Filename’ and if my program knows how long the file
  25959. will be, I want my program to be able to find out whether the file will
  25960. fit in the specified place, without knowing in advance whether ‘XXXFS’
  25961. stands for ADFS or CFS or SCSIFS or RamFS or whatever. The program also
  25962. has to work if a path is not specified and the file is simply to be
  25963. saved to the CSD.
  25964. 6.1
  25965. A couple of correspondents have pointed out that there is an SWI called
  25966. ‘FileCore_FreeSpace’ (on page 1021 of the PRM). However, in order to use
  25967. this you have to know the ‘private word’ of the filing system in
  25968. question and, so far as I can see, this SWI can only therefore be called
  25969. by a filing system module, which is not much use to a mere mortal
  25970. programmer!
  25971. 6.1
  25972. I still, therefore, believe that the only generalised way of doing what
  25973. I want is to use syntax like the following :
  25974. 6.1
  25975. X%=OPENOUT(Filename$)
  25976. SYS “XOS_Args”,6,X%,Length% TO ,,Allocated%
  25977. IF Allocated% >= Length% THEN ... go ahead and save it.
  25978. 6.1
  25979. This is hardly elegant but it seems to work.
  25980. 6.1
  25981. I understand that RISC-OS 3 will include the generalised SWI that I
  25982. want. However, this will not be much use, of course, in a program that
  25983. is designed to work in RISC-OS 2 as well!  Hugh Eagle, Horsham
  25984. 6.1
  25985. •   Formatting numbers (continued) − Over the last two months, I have been
  25986. following the correspondence on Basic’s number formatting ability (PRINT
  25987. and STR$) with some interest. Has the increased size and complexity of
  25988. RISC-OS caused the oversight of some of the slightly esoteric but very
  25989. powerful features of BBC Basic? One such feature is the @% variable in
  25990. Basic. The @% variable controls the format of the PRINT and STR$
  25991. functions and much of last month’s discussions could have been settled
  25992. by altering the @% variable so that STR$ was formatted in the same way
  25993. as PRINT.
  25994. 6.1
  25995. @% is fully discussed in the manuals that accompany the computer under
  25996. the PRINT command but I will try to give some useful pointers here. As
  25997. with all Basic integers, the @% variable is four bytes long. When Byte 4
  25998. (the left-most byte) is zero Basic ignores @% when using the STR$
  25999. function (this is the default and the source of last month’s problems)
  26000. otherwise STR$ is formatted exactly the same as PRINT. Byte 3 allows the
  26001. choice of three different formatting types: 0 − general (the default), 1
  26002. − exponent and 2 − fixed. Byte 2 specifies the number of digits printed
  26003. and Byte 1 gives the print field width when you use comma separators in
  26004. PRINT.
  26005. 6.1
  26006. Our problem arises from two areas: the way computers represent numbers
  26007. and the value of @%. At this point, I think it is necessary to take an
  26008. aside into the nature of real number representation in computers so, if
  26009. you are only interested in how to circumvent Basic’s printing problems,
  26010. skip to the end of this article.
  26011. 6.1
  26012. Common advice to novice programmers is not to use real variables unless
  26013. you really have to. Speed and storage reasons are normally given for
  26014. simplicity but a far more important reason is that real numbers are not
  26015. exact in the same way as integers and they must be treated differently.
  26016. A classic example is the problem in mathematics of dealing with two
  26017. representations of, say, the number one: which could be 1.000... or
  26018. 0.999.... As far as we are concerned both are the same but if we ask a
  26019. computer whether or not they are equal, we find not. This is due to no
  26020. fault of the computer or the programmer but the acceptance that
  26021. computers cannot store the infinite expressions for real numbers but
  26022. must approximate to a number of decimal places and so springs up the
  26023. subject of numerical analysis.
  26024. 6.1
  26025. How then do we equate real numbers? Well, we must choose a value for a
  26026. zero! That is a number where any number smaller than it we consider to
  26027. be ‘as good as zero’. An example for Basic is 10−7, any smaller and the
  26028. errors in calculations become significant. So when we want to check
  26029. equality of two numbers a and b we use the expression (ABS(a­b) < 1E-7).
  26030. If this is true then the two numbers are ‘as good as equal’. (ABS is
  26031. used since we are only interested in the magnitude of the difference
  26032. between the numbers.)
  26033. 6.1
  26034. The second important point with numbers stored in computers is that they
  26035. are stored in binary. Yes, of course, you all knew that but fewer people
  26036. are aware how computers store fractions. Much like in decimal when we
  26037. have a decimal point, computers use a binary point where the digits to
  26038. the right of the point have place values 1/2, 1/4, 1/8, etc. In decimal
  26039. there is a problem of representing fractions like 1/3 or 1/6 because the
  26040. prime factors of 3 or 6 are not divisible by the factors of 10 (2, 5) so
  26041. you get infinite decimal expansions for them. In binary, the problem is
  26042. greater because there is only one factor of two (unlike two factors of
  26043. ten) so even more numbers have infinite representations (this is why
  26044. some people advocate using base 12 instead of base 10 for day to day
  26045. life − it makes mental arithmetic so much easier). This means that
  26046. simple decimal numbers like 0.6 have an infinite expansion in binary.
  26047. 6.1
  26048. What has all this got to do with printing numbers in Basic? Well, an
  26049. appreciation of what is going on when you store numbers will help you
  26050. avoid the pitfalls that last month’s contributors highlighted. Now that
  26051. we are aware that innocuous looking numbers like 2.1 can have infinite
  26052. expansions when stored in binary, it becomes clear that 2.1 × 10 may not
  26053. equal 21 but, perhaps, 20.99999999!
  26054. 6.1
  26055. Is there anything that we can do about this? Yes, indeed there is. We
  26056. can tell Basic to round off the number to nine decimal places instead of
  26057. attempting to print 10 which extends the precision beyond the accuracy
  26058. (in general Basic is accurate to nine decimal places unless you are
  26059. using the floating point version where I believe 19 is the limit but not
  26060. having a RISC-OS 3...).
  26061. 6.1
  26062. Now we come back to @%. At default, @% specifies 9 decimal places but it
  26063. only affects PRINT and not STR$ which defaults to ten. To alter this,
  26064. all we need to do is set the byte 4 flag in @% to one. Try PRINT
  26065. STR$(0.6) and then set @% = &0100090A and try again (by the way, &90A is
  26066. the default value for @% whereas STR$ uses &A0A if byte 4 is unset).
  26067. 6.1
  26068. If we want to print money then we can set @% to two decimal places by
  26069. &0002020A (remember to set byte 4 to one if you want to use STR$). This
  26070. has the added bonus of allowing you to print the number rounded off but
  26071. still maintain the extra places for further calculations.
  26072. 6.1
  26073. I hope you can now see the power and simplicity of using @%. My only
  26074. warning is that if you wish to use several formats in your program, then
  26075. either save the previous @% or declare it as a local variable.  Emmet
  26076. Spier, Guildford.
  26077. 6.1
  26078. This subject seems to have opened up quite a debate. Emmet has agreed to
  26079. edit any comments regarding rounding errors for us and so if your wish
  26080. to add to the debate you should write to him directly. Emmet Spier, 6
  26081. Parklands Place, Guildford, Surrey  GU1 2PS.
  26082. 6.1
  26083. •   PC keyboards for A4 − A word of warning − not all PC type keyboards
  26084. work on the A4 (or all PCs for that matter!), so take the A4 to the shop
  26085. and try before you buy! Reasonable ones can be had for about £40 at some
  26086. computer fairs. Note that non PS/2 type keyboards (with the 5 pin DIN
  26087. plug) can be used with an adaptor or by changing the plug.  Mike
  26088. Harrison
  26089. 6.1
  26090. •   RISC-OS 3 DOS partitions − Because DOS filenames (including exten
  26091. sions) are in general longer than the maximum length of a valid ADFS
  26092. filename (10), it is not always possible to copy or move DOS files from
  26093. hard or floppy discs directly to the ADFS.
  26094. 6.1
  26095. The !MultiFS utility as supplied with the PC Emulator solves this by
  26096. allowing you to truncate the DOS filename while the translation process
  26097. takes place. Another very useful option (which I often use when copying
  26098. files from C programs) is to force !MultiFS to handle DOS extensions as
  26099. (hierarchical) directories.
  26100. 6.1
  26101. However, when the filetype of a DOS partition on your ADFS hard disc is
  26102. set to ‘DOSdisc’, RISC-OS 3 will display a filer window for the
  26103. partition when you try to open the folder, while !MultiFS just ignores
  26104. it (i.e. no :C drive on the iconbar.) This is all very nice but RISC-OS
  26105. 3 doesn’t offer the nice name translation options mentioned above. To
  26106. enable !MultiFS to display your DOS partitions, just set their filetype
  26107. to ‘data’ before you start !MultiFS. Remember to use the command line
  26108. and not the filer menu because the latter doesn’t allow you to change
  26109. the the filetype of DOSdiscs. I inserted 3 lines for each DOS partition
  26110. in the !MultiFS !Run file to swap between ‘DOSdisc’ and ‘data’ type
  26111. partitions when !MultiFS is started:
  26112. 6.1
  26113.    *Filer_CloseDir    <PCe$Drive_X>
  26114. 6.1
  26115. *SetType    <PCe$Drive_X> Data
  26116. 6.1
  26117. directly after setting the system variable <PCe$Drive_X>, and
  26118. 6.1
  26119.    *SetType    <PCe$Drive_X> DOSDisc
  26120. 6.1
  26121. at the end of the !Run file (although the comment tells us not to do
  26122. so).
  26123. 6.1
  26124. Unfortunately, there are some bugs in !MultiFS: When you copy to a
  26125. MultiFS filer window, you must ensure name translation is not set to
  26126. hierarchical or you will end up with wildcards (‘?’) in filenames. When
  26127. this happens you must use DOS itself to delete the file because RISC-OS
  26128. fails to wipe those objects. Another bug appears if you shut down your
  26129. system after using !MultiFS. This results in an error report and a task
  26130. manager crash.  Paul Groot, Holland.
  26131. 6.1
  26132. •   Saloon Cars Deluxe − If you are having problems running Saloon Cars
  26133. Deluxe, it may be worth knowing that you must have the Font Manager
  26134. installed for it to run.
  26135. 6.1
  26136. •   Shareware 44 (Fortran Friends) update − There is a small bug in the
  26137. !Fortran77. DesktopF77 program. Line 1400 should read:
  26138. 6.1
  26139. 1400 IF INSTR(b$,“rror”) THEN E%+=1
  26140. 6.1
  26141. This allows errors in the code generator part of the compiler to be
  26142. detected. Kate Crennell, Oxon.
  26143. 6.1
  26144. •   Zelanites cheat − The following program provides a cheat for
  26145. Zelanites. It stops the number of lives decreasing below 9.  Steve
  26146. Edwards, Stourbridge.
  26147.  10 REM >:0.$.hints.zelcheat
  26148.  20 REM Archive hints & tips section
  26149.  30 REM (c) S.EDWARDS 1992
  26150.  40 REM infinite lives for Zelanites
  26151.  50 REM ****************************
  26152.  60 REM * When you have run the program the game should *
  26153.  70 REM * then be run as normal. This time when you die  *
  26154.  80 REM * you will have not gone down one life but up   *
  26155.  90 REM * to NINE lives, which stay with you for ever.  *
  26156. 100 REM *                          *
  26157. 110 REM ****************************
  26158. 120 :
  26159. 130 DIM store% &400
  26160. 140 MODE 0
  26161. 150 PROCDisc_op
  26162. 160 PRINT‘********FINISHED********’
  26163. 170 PRINT
  26164. 180 PRINT‘****NOW GET BLASTING****’
  26165. 190 END
  26166. 200 :
  26167. 210 DEF PROCDisc_op
  26168. 220 PRINT ‘Put !ZELANITE disc into drive 0’
  26169. 230 PRINT ‘   and press a key.’
  26170. 240 A=GET
  26171. 250 PRINT ‘Loading  sector information’
  26172. 260 SYS ‘ADFS_DiscOp’,0,1,&50400, store%,&400
  26173. 270 store%?&67=&6A:REM Original code =&2A
  26174. 280 INPUT‘Are you are ready to make the change ?’;A$
  26175. 290 IF LEFT$(A$,1)=‘N’ OR LEFT$(A$,1)=‘n’ THEN END
  26176. 300 IF LEFT$(A$,1)=‘Y’ OR LEFT$(A$,1)=‘y’ THEN
  26177. 310   PRINT‘Saving cheat back to disk’
  26178. 320   SYS ‘ADFS_DiscOp’,0,2,&50400, store%,&400
  26179. 330 ENDIF
  26180. 340 ENDPROC
  26181.  
  26182. Hints and Tips
  26183. 6.2
  26184. •   3D icons for RISC-OS 3.1 − Here are some tips for those of you who
  26185. upgraded from RISC-OS 3.00 to RISC-OS 3.10 (and for anyone else who is
  26186. interested in a fancy desktop).
  26187. 6.2
  26188. If you have used the fancy 3D-like window borders on your A5000, you
  26189. will probably have noticed that, with RISC-OS 3.1, the borders will not
  26190. install properly. This is because RISC-OS 3.0 programs used the
  26191. ‘IconSprites’ command to install the wimp’s tool sprites (i.e. borders),
  26192. while in RISC-OS 3.1 there is a new command to install user defined
  26193. window tools:
  26194. 6.2
  26195. *ToolSprites <spritefile>
  26196. 6.2
  26197. This is, I think, because the border sprites are now held in a separate
  26198. sprite area for faster redrawing. So, the only thing you have to do is
  26199. to change the command ‘IconSprites’ into ‘ToolSprites’ at the appropri
  26200. ate places in your files. Note that you can also re-install the default
  26201. window tools by entering ‘ToolSprites’ on the command line.
  26202. 6.2
  26203. The small utility I use to install enhanced icons (a modified version of
  26204. !SetIcons), shows another minor modification of RISC-OS 3.1. It is now
  26205. assumed that some icons have the same dimension. For example, some
  26206. border elements are painted from two sets of sprites − one that is
  26207. normally used and one that is used when you select this particular
  26208. border element. If corresponding sprites within these sets are different
  26209. in size, you will see that some parts of the elements are not painted
  26210. when you select them. To overcome this problem, you can adjust the sizes
  26211. with !Paint.
  26212. 6.2
  26213. For those programmers who liked the Impression-style dialogue boxes,
  26214. there exists a module called ‘Interface’. This module takes care of most
  26215. of the code to generate fancy icon borders. RISC-OS 3.0 has some in-
  26216. built extras to achieve the same thing without the need to insert extra
  26217. lines of code into your program. (The programmer only has to define some
  26218. validation strings which contain the information to generate the desired
  26219. effect.) However, because the validation string command syntax was
  26220. essentially the same as the syntax used by the Interface module, there
  26221. were sometimes problems when using the Interface module with RISC-OS
  26222. 3.0.
  26223. 6.2
  26224. After I installed the new RISC-OS 3.1 ROMs, I was surprised to see that
  26225. my own (RISC-OS 3.0!) programs didn’t have fancy borders any more. After
  26226. some experimenting with the validation strings, I discovered that the
  26227. command syntax is now different from the syntax used by the Interface
  26228. module. To be more specific, RISC-OS 3.1 makes use of ‘r<int><colour>’
  26229. (where <int> is a number between 0 and 8 and <colour> is a WIMP colour
  26230. number), instead of ‘b<int>, ...’. This modification probably has been
  26231. made to overcome the incompatibility problems with the Interface module.
  26232. The simplicity with which you can use this prompts a question: Why don’t
  26233. the ROM based applications like Draw use this facility? I guess this is
  26234. just another ‘Acorn-mystery’.  Paul Groot, Holland.
  26235. 6.2
  26236. • Editing paper sizes in RISC-OS 3 − If attempts are made to edit the
  26237. paper sizes contained within the standard RISC-OS 3 printer driver
  26238. files, it will be found that any changes made to the Text Margins
  26239. section will revert to 0 when the window is closed, even if Save
  26240. Settings is selected. This is due to a bug, but can be rectified by
  26241. editing the paper files directly.
  26242. 6.2
  26243. Editing any of the paper sizes results in a new file called PaperRW
  26244. being generated in the Printers application directory. This file can be
  26245. modified using Edit. Make sure that the Printers application is not
  26246. running (i.e. Choose Quit from the iconbar menu if it is). Find the
  26247. !Printers application (normally in the App1 directory) and open it using
  26248. Shift-double-click. Open the file called PaperRW by Shift-double-
  26249. clicking on it. Scroll down the file until you find the name of the
  26250. paper setting which you defined or modified. It will look something like
  26251. ’pn: Fanfold A4’. At the bottom of the set of numbers relevant to this
  26252. paper setting are five values (called tb, tt, tl, tr, th) which
  26253. correspond to the text bottom, top, left and right margins and the
  26254. height (in lines) respectively. Alter the values from 0 to your required
  26255. numbers and save the file. When you re-run the Printers application,
  26256. your paper sizes will be rectified.  Simon Moy, N.C.S.
  26257. 6.2
  26258. •   How NOT to treat your SCSI hard disk − A few weeks ago I found a new
  26259. way to get rid of all those files that clogged my external hard disk(!)
  26260. 6.2
  26261. Every verify I did showed up one questionable sector, so I decided to
  26262. map it out as defective. The *Defect command applies only to ADFS, so I
  26263. browsed through the SCSI disk’s manual and, finally, found what I was
  26264. looking for (or so I thought).
  26265. 6.2
  26266. Morley supply their hard disks with a formatter application which,
  26267. amongst other things, can add defects to a list. There is a warning that
  26268. a low level format would result in total loss of data but, later in the
  26269. description, an option was mentioned to decide whether or not to do the
  26270. low level format while running the application.
  26271. 6.2
  26272. This led me to believe that clicking on ‘No’ would keep my data intact −
  26273. alas, I was wrong!
  26274. 6.2
  26275. The Morley hotline informed me that I had in fact done a high level
  26276. format which wipes out the information about the addresses for each
  26277. file. As the passage in the manual could be misunderstood, they very
  26278. kindly offered to restore my data for me free of charge (just p&p).
  26279. (Great service!!)
  26280. 6.2
  26281. However, it was not to be: I forgot to inform them that I use Computer
  26282. Concepts’ Compression on most of my files and this, I was told later,
  26283. encodes the files in such a way that retrieval becomes virtually
  26284. impossible.
  26285. 6.2
  26286. I learned two things from my self-made disaster:
  26287. 6.2
  26288. 1) Even the excellent Compression is not proof against all kinds of
  26289. fools.
  26290. 6.2
  26291. 2) 800 Kb floppy disks are just not good enough as a backup medium! I
  26292. shudder at the thought that I will have to feed 112 floppies into my
  26293. machine, once the hard disk returns from England.
  26294. 6.2
  26295. As a consequence, for future backups I have ordered a 20Mb floptical
  26296. drive from Morley, to be sent as soon as it is able to read and write
  26297. Acorn floppy formats.  Jochen Konietzko, Köln, Germany.
  26298. 6.2
  26299. •   Humour in RISC-OS 3.1! − You will be pleased to hear that humour still
  26300. exists within Acorn. If you load ‘Resources:$.Resources.
  26301. Switcher.Templates’ into the template editor, FormEd, you get an
  26302. interesting message.  Knut Folmo, Norway
  26303. 6.2
  26304. •   Loading multiple Impression documents − If you want to load a number
  26305. of Impression files at once, just select them (with rubber band dragging
  26306. on RISC-OS 3, if you like) and drag them down onto the Impression icon
  26307. on the iconbar.
  26308. 6.2
  26309. • Memory size from Basic − In Basic, there is no specific way to find
  26310. out how much physical memory is fitted to the host machine. However, it
  26311. can be calculated using a SWI call as in this example:
  26312. 6.2
  26313. 10 SYS “OS_ReadMemMapInfo” TO PageSize%, NumOfPages%
  26314. 6.2
  26315. 20 TotalMemory% = PageSize% * NumOfPages%
  26316. 6.2
  26317. 30   REM This value is in bytes
  26318. 6.2
  26319. 40 Total% = TotalMemory% / 2^20
  26320. 6.2
  26321. 50   REM This value is in Mbytes
  26322. 6.2
  26323. Simon Moy, N.C.S.
  26324. 6.2
  26325. •   More RISC-OS 3.1 Alt Characters The current A5000 Welcome Guide
  26326. mentions some additional Alt-key characters. These alt-keys don’t
  26327. actually produce a character themselves, they just set up an accent, so
  26328. that the following character is changed into an accented character. This
  26329. only happens if the accent is suitable for the following character.
  26330. 6.2
  26331. For example to type an ‘e’ with an acute accent (é): Whilst holding down
  26332. the Alt key, press and release <[>. Release <alt> and the press and
  26333. release <E>. Thus:-
  26334. 6.2
  26335. Alt-[  E     é
  26336. Alt-]  E     è
  26337. Alt-;  E     ë
  26338. Alt-’  E     ê
  26339. Alt-,  N   ñ
  26340. Alt-.  A     å
  26341. Alt-/  C     ç
  26342. 6.2
  26343. The only other Alt-key character missing from the previous list is Alt-
  26344. hyphen which gives character 173, which, in the Acorn fonts, looks
  26345. exactly like a normal hyphen, but is often different in fonts from other
  26346. suppliers.  Simon Moy, N.C.S.
  26347. 6.2
  26348. • MS-DOS 5, PC Emulators and the Archimedes keyboard − (This excerpt
  26349. from a reply to an Archive reader’s letter may prove useful to others.)
  26350. The cursor keys do not work correctly with the PC emulators due to a
  26351. bug. They will not work properly with either QBasic or DOS Edit. They
  26352. can be used to move around the text but, to select text, you must use
  26353. the cursor and editing keys which are mapped on the numeric keypad (as
  26354. on a normal PC AT-style keyboard). Therefore, when inside the editors,
  26355. make sure that NumLock is off and use <shift> and the following keys (on
  26356. the numeric keypad):
  26357. 6.2
  26358. 6.3
  26359. 6.2
  26360. AMOUSE.COM is fully compatible with MS-DOS 5. However, as with all PCs,
  26361. you cannot display the mouse pointer at the DOS prompt. Also, not all PC
  26362. programs support the mouse. However, if the AMOUSE command is present in
  26363. your AUTOEXEC.BAT file and the program you want to use accepts a mouse
  26364. (e.g. QBasic, EDIT and DOSSHELL), you must start the appropriate
  26365. application first and then select Connect Mouse (by pressing <menu> over
  26366. the PC emulator window) if you are running the emulator from a window in
  26367. the RISC-OS desktop. If you are using the emulator under Single Task
  26368. mode, the mouse should automatically connect itself. (If the mouse does
  26369. not connect itself automatically when running the emulator under Single
  26370. Task mode, then this is a further bug in the PC emulator.) Typing AMOUSE
  26371. at the DOS prompt or selecting Connect Mouse from the window’s menu will
  26372. not display the DOS mouse pointer, as DOS itself does not support a
  26373. mouse. If you do this, the RISC-OS pointer will disappear (because
  26374. control has passed to DOS) and you must press <menu> on the mouse to
  26375. relinquish control from the emulator back to RISC-OS.  Simon Moy, N.C.S.
  26376. 6.2
  26377. • Pound sign problems − The pound sign has always been a difficult
  26378. character to print and display on the screen. To make the pound sign
  26379. appear in the PC Emulator, press and hold <alt> and type 156 on the
  26380. numeric keypad. When you release <alt>, the pound sign will appear.
  26381. 6.2
  26382. If you are printing a file as text (i.e. from Edit or PipeDream for
  26383. instance) then the pound sign will print as a hash (#). You can reverse
  26384. this by using a hash symbol in your text in place of the pound sign,
  26385. although it is important that your printer is set up with a UK character
  26386. set − see the DIP switch settings for your specific printer. If you are
  26387. printing a file produced using bitmaps (e.g. Impression) then the pound
  26388. sign will print correctly anyway. Basically, any program which defaults
  26389. to printing on the screen using the system font will print characters as
  26390. plain text − there is a section on plain and fancy text in the RISC-OS
  26391. User Guide.
  26392. 6.2
  26393. By the way, does anybody know why you can’t access the pound sign
  26394. (either from the keyboard or <alt-156>) in a Task Window under RISC-OS
  26395. 3.0?  Simon Moy, N.C.S.
  26396. 6.2
  26397. • RISC-OS 3.1: A310 − There is a problem when fitting RISC-OS 3.1 to
  26398. A310 machines fitted with the Arcram 434 ARM3 + 4Mb upgrade from Watford
  26399. Electronics. It causes the machine to hang on power-up. Replacement PAL
  26400. chips and more information are available from Watford Electronics on
  26401. 0923−37774 (Fax: 33642).  Simon Moy, N.C.S.
  26402. 6.2
  26403. • RISC-OS 3.1: SCSI drives − There may be problems accessing the SCSI
  26404. drive using the HCCS Hard Card interface with RISC-OS 3.1. Contact HCCS
  26405. for details.  Simon Moy, N.C.S.
  26406. 6.2
  26407. • Rotated fonts and sprites using Laser Direct − With the advent of
  26408. RISC-OS 3.1, there are problems with printing rotated text and graphics
  26409. using the currently existing RISC-OS 2 printer drivers such as that
  26410. supplied with Laser Direct. To overcome the problem, transform the text
  26411. or sprite to any angle in Draw, make sure that the item is selected and
  26412. choose the Convert to Path option from the Select submenu. This will
  26413. allow rotated text or sprites to be printed correctly using the RISC-OS
  26414. 2 printer driver supplied with Laser Direct. This does not mean that it
  26415. will work with all RISC-OS 2 printer drivers − you will have to
  26416. experiment! Steve Costin, Ramsgate.
  26417. 6.2
  26418. •   TV interference − In response to Chris Bass’ enquiry in Archive 6.1
  26419. p36, here is a general procedure which covers almost all cases:
  26420. 6.2
  26421. 1. Does the computer interfere with your own TV, when it is as close/
  26422. closer to your computer than your neighbour’s TV is? (On either side of
  26423. a party wall they could be less than 1 m apart!)
  26424. 6.2
  26425. If YES, go to 2. If NO, go to 3.
  26426. 6.2
  26427. 2. Does the interference disappear when the computer is 3 m or more from
  26428. the TV?
  26429. 6.2
  26430. If YES, agree with your neighbour to move your computer and his TV so
  26431. that they are more than 3 m apart. If moving them apart is inconvenient,
  26432. you could try sticking cooking foil on to the party wall (under the wall
  26433. covering, eventually). You need a minimum of about 2 m by 2 m, and there
  26434. is usually no point in earthing it, but you could try the effect.
  26435. 6.2
  26436. In some types of building, your computer might be too close to your
  26437. neighbour’s TV aerial, in which case moving them apart is the best bet.
  26438. 6.2
  26439. If NO, the computer may be faulty. Many dealers may not be able to cope
  26440. with this type of fault, so you, or your dealer, should contact Acorn
  26441. with a FULL description of the problem.
  26442. 6.2
  26443. 3. If NO to question 1, your neighbour’s TV has either an inadequate
  26444. aerial or inadequate ‘immunity’. (This is a technical term describing
  26445. ‘resistance to electromagnetic disturbances’.) An inadequate aerial
  26446. usually also gives ‘fuzzy’ pictures and/or ghosts (outlines of images
  26447. displaced sideways). The aerial itself may be OK; the fault may be in
  26448. the downlead. They tend to fill up with water and deteriorate after a
  26449. time. A new aerial (and downlead) is quite inexpensive, even a large
  26450. one. If the aerial is not the problem, the manufacturer of the receiver
  26451. should be contacted, either directly or through the TV dealer or rental
  26452. company, regarding the probable lack of immunity of the TV. Manufac
  26453. turers (of TVs and computers) are quite concerned about this at present,
  26454. because of an EC Directive on the subject.
  26455. 6.2
  26456. 4. If all else fails, the DTI Radio Investigation Service will look at
  26457. the problem and give advice but there is a fee of about £21 involved.
  26458. The Service has much information and experience of such problems and
  26459. their cures, including private information about know immunity problems.
  26460. For Lincolnshire, the address is (or was) PO Box 2500, Nottingham NG8
  26461. 3SS. The head office is at Waterloo Bridge House, Waterloo Road, London
  26462. SE1 8UA. A book, ‘How to improve Television and Radio Reception’ is/was
  26463. available from the Service, and gives a good deal of information on
  26464. interference problems (some of it technical).  John Woodgate, Rayleigh,
  26465. Essex.  A
  26466.  
  26467.  
  26468.  
  26469. Hints, Tips and Letters
  26470. 6.2
  26471. A combined selection this month, since the hints and tips stem from
  26472. letters I have received recently.
  26473. 6.2
  26474. • Key Window / Impression problem:  I am grateful to Jack Evans of
  26475. Bristol for pointing out this problem to me, particularly since I am the
  26476. author of the program in question. Key Window (available on Shareware 47
  26477. – see review in Archive 6.1 p31) is a program which displays keystrips
  26478. in a window, and the strips update themselves as you move the caret
  26479. between tasks.
  26480. 6.2
  26481. The problem is that if you have Key Window running at the same time as
  26482. you are editing a document in Impression which is set to auto-save, the
  26483. auto-save doesn’t work. You can still save manually of course, but this
  26484. is something which is easy to forget about. The solution is easily
  26485. effected, if not very satisfactory. You have to de-select ‘Sense caret’
  26486. in Key Window’s Options menu. Unfortunately, this will prevent Key
  26487. Window from changing keystrips as you move between applications. If you
  26488. use Impression’s auto-save a lot, and want to disable Key Window’s
  26489. interference permanently, you can edit the !Run file to disable the
  26490. ‘sense caret’ option via a system variable. Full instructions for doing
  26491. this are provided in the file.
  26492. 6.2
  26493. Users may be interested to know that I have just started work on version
  26494. 2 of Key Window, and am re-writing it from scratch to make it a much
  26495. better program with enhanced facilities. I intend to approach Computer
  26496. Concepts about the problem, to see if a satisfactory solution can be
  26497. found. Other programs with auto-save facilities, such as Ovation and
  26498. Vector, do not appear to suffer from the problem.
  26499. 6.2
  26500. • Protecting Impression files:  Charles Martin from the Isle of Wight
  26501. has been having a few problems with some Impression ‘template’ files –
  26502. empty documents with standard formats. He wants to make them Delete- and
  26503. Write-protected via the filer’s Access menu but has found that setting
  26504. the files (which are, of course, in the form of application directories)
  26505. to ‘locked’ does not protect their contents. Similarly, opening the
  26506. directories and choosing ‘Select all’ does not have the desired effect.
  26507. 6.2
  26508. This situation actually applies to all applications and directories, not
  26509. just Impression files. However, under RISC-OS 3, the Access menu is
  26510. completely redesigned and works much better, so the problem only really
  26511. affects RISC-OS 2 users. The difficulty arises because of the distinc
  26512. tion that the filer makes between directories (be they normal
  26513. directories or application directories) and actual files. This is one of
  26514. those ‘features’ of RISC-OS 2 which needs a bit of care.
  26515. 6.2
  26516. Under RISC-OS 3, if you select a directory or application directory
  26517. (such as an Impression file) and set it to ‘Protected’, the filer will
  26518. protect all the files within it, no matter how many sub-directories
  26519. there are. Under RISC-OS 2, however, it will only set the status of the
  26520. directory itself. You therefore need to open the directory, select all
  26521. the files within it and set their attributes via the Access menu.
  26522. However, there is a further complication: if the selection of files
  26523. contains any directories, the process will be upset − the directories
  26524. need to be deselected first.
  26525. 6.2
  26526. Under RISC-OS 2, to protect an Impression file, you would need to open
  26527. it up, choose ‘Select all’ from the filer menu, deselect any directories
  26528. in the selection by clicking on them with <adjust>, and finally set all
  26529. the files’ attributes via the Access menu. Then repeat the process for
  26530. each of the directories which you had deselected (‘MasterChap’,
  26531. ‘Chapter1’, etc). There is simply no point in protecting the directories
  26532. themselves, since it is impossible to delete a directory which contains
  26533. locked files, and locking a directory (under RISC-OS 2) does not affect
  26534. the access status of the files within it in any case.
  26535. 6.2
  26536. All in all, it’s probably easiest to upgrade to RISC-OS 3!
  26537. 6.2
  26538. • Applause for Ovation:  A highly enthusiastic letter about Ovation has
  26539. been received from Tony Greenfield of Birmingham. He has the following
  26540. to say:
  26541. 6.2
  26542. “[Ovation] does just what I had hoped for and more. The manual is
  26543. brilliant! It is a work book on DTP, quite good enough as an introduc
  26544. tion to the subject to beginners and as an encouraging tutorial for more
  26545. experienced users. I found it much more useful than First Impression. I
  26546. have learnt much about Impression II and much about how a manual should
  26547. be presented. I wonder if the reason that there are not many hints and
  26548. tips on using Ovation [in Archive] is because the user manual is so
  26549. clear? (It may also have something to do with the relative numbers of
  26550. people using the two packages. Ed.) There are many features which I like
  26551. about the program. In fact, there is not very much missing – I wonder
  26552. if, for most people, Impression is not really required − after all, it’s
  26553. more expensive than Ovation. I’m sure that, for schools who have yet to
  26554. purchase a DTP package, Ovation would be a must better buy than
  26555. Impression, for many reasons − perhaps most of all for the ease of use,
  26556. and I guess it would be easier to learn than Impression.”
  26557. 6.2
  26558. Tony goes on to list various features which he likes in Ovation, notably
  26559. its wide range of effects such as word underline, small caps and
  26560. tracking, and its system of basing font styles on one family name, so
  26561. that changing the base family will also alter the italic and bold fonts.
  26562. 6.2
  26563. I would certainly agree with Tony’s comments about the manual, which is
  26564. indeed a very helpful document, although I think Impression is the
  26565. easier of the two to learn, as Ovation has a quite unwieldy menu
  26566. structure. Perhaps the quality of the manual really is the reason why we
  26567. haven’t received more tips on using the program from readers. Anyway,
  26568. things are set to change from this month in Archive, with the advent of
  26569. Maurice Edmundson’s dedicated Ovation column. (We also have a new DTP
  26570. editor, Ray Dawson, whose first column will appear next month.) For
  26571. further comments about Ovation, see my Ovation/Impression comparison
  26572. article which follows on page 33.  A
  26573.  
  26574. Hints and Tips
  26575. 6.3
  26576. •   A3010 joystick ports − several A3010s have been returned to Acorn with
  26577. complaints of faulty joystick ports. They are not faulty. The A3010 is
  26578. the first Archimedes to have a built-in digital (i.e. Atari-style)
  26579. joystick port and because of this, many of the games already available
  26580. do not cater for digital joysticks. This is a fairly major problem and
  26581. hopefully someone will soon produce some sort of patch (either hardware
  26582. or software) which allows digital joysticks to be used in place of the
  26583. more common proportional joysticks (such as the Voltmace Delta). Until
  26584. then, two sources of information about digital joystick interfaces are
  26585. The Leading Edge and Beebug.
  26586. 6.3
  26587. •   A4 Portable Guide − on page 31 of this guide, the pin-out diagram for
  26588. the AKF18 monitor is slightly incorrect. Pins 13 and 14 (horizontal and
  26589. vertical sync) have been reversed.
  26590. 6.3
  26591. •   Artworks & Impression dongles − There appears to be a clash between
  26592. these two dongles when using an A5000 and a JP-150: printouts appear
  26593. with spurious information across them. Computer Concepts say that the
  26594. problem only occurs between A5000s and JP-150 printers and add that they
  26595. are looking into the problem.
  26596. 6.3
  26597. •   Banner-making − I have just seen, in Archive 6.1, a review of a
  26598. program called Banner.
  26599. 6.3
  26600. If you own a printer which takes fanfold paper, there is an alternative
  26601. way for making banners. (By the way, fanfold paper does not need
  26602. sprocket holes if you are careful about the line-up and select friction
  26603. feed, so normal paper rolls can be used. For example, the Colourjet 132
  26604. users can print banners in this way.)
  26605. 6.3
  26606. The print margins on all the Acorn printer drivers are user-definable
  26607. and as long as you want to print out banners shorter in length than A0,
  26608. extending the appropriate print margin and setting Draw to A0 landscape
  26609. will normally allow satisfactory banners to be produced. (Changing the
  26610. print margins is described in the manuals; change only the height of the
  26611. page to whatever you wish and leave the width alone.) If print margins
  26612. are shown, keeping to these will ensure that none of the picture is
  26613. lost.
  26614. 6.3
  26615. The additional flexibility of Draw, especially in conjunction with the
  26616. drawfile utilities (!FontFX, !DrawBender, etc) would, in my opinion,
  26617. offset most of the ease of use of Banner, except perhaps in primary
  26618. schools.
  26619. 6.3
  26620. Note that the printer should not be set to skip perforations, or
  26621. problems will result, but I have had no difficulty in printing banners
  26622. on an Epson LX and even a Colourjet 132 in this manner.
  26623. 6.3
  26624. For those requiring longer banners, !Draw½ and, I believe, !Draw+
  26625. (Careware 13) allow an option to set the work area to the print margins,
  26626. which will then enable them to use the longer pages which the printer
  26627. driver can handle but, again, for a banner you should set the page to be
  26628. much taller than normal in the printer driver and edit the display in
  26629. landscape mode. I have used this to produce banners several metres long.
  26630. 6.3
  26631. I am sure Banner is a very useful package and I have not attempted to
  26632. use it but I would be unwilling to spend £15 when the same effect seems
  26633. to be available from the software supplied with the machine and
  26634. Careware.   Andrew Garrard, Cambridge.
  26635. 6.3
  26636. •   Banner-making again − Recently I needed to print up a large banner for
  26637. a meeting, and wondered how I should go about it. Of course, I could
  26638. always have bought ‘Banner’ for £15 but, for a once off job, I thought
  26639. this just a touch extravagant. This set me thinking... Impression can
  26640. define master pages as big as you like... hmm... This is what I did, and
  26641. it works!
  26642. 6.3
  26643. 1.   Open a new document in Impression
  26644. 6.3
  26645. 2.   Create a new Master Page (Custom Job) − Width: 1000 and Depth: 210
  26646. 6.3
  26647. 3.   Return to the document and set the Master Page in Alter Chapter
  26648. 6.3
  26649. 4.   Set the Font Size to 500
  26650. 6.3
  26651. 5.   Type in “Hello World!” or whatever
  26652. 6.3
  26653. 6.   Set the printer driver page size to − Height: 1000 and Width: 210
  26654. 6.3
  26655. 7.   Set the Impression Print Dialogue to print sideways, and fire away
  26656. 6.3
  26657. Warning − this is not ‘printer ribbon friendly’... in fact, it is
  26658. positively ‘printer ribbon hostile’!  Philip Lardner, Co. Wicklow,
  26659. Ireland.
  26660. 6.3
  26661. •   CC BJ10ex Turbo Driver − It seems that the only method of using the
  26662. Turbo Driver with the PC Emulator is to load !BJ10e and quit it again
  26663. before loading the emulator.  Chris McIntosh, Blackheath.
  26664. 6.3
  26665. •   Programming the Serial Port (Vertical Twist) graphics board − On the
  26666. monthly program disc is a series of programs which, in themselves, do
  26667. nothing much. However, they show how the 65000 colour modes can be
  26668. accessed from Basic and C.
  26669. 6.3
  26670. They mainly show how to draw lines, circles and fill shapes. Most do not
  26671. need any interaction. Fill requires five mouse selections to create to
  26672. outline − the sixth should be inside the box.
  26673. 6.3
  26674. Lines − just move the mouse and press <select> to change colour.
  26675. 6.3
  26676. 15_120ASM converts mode 15/21 sprites to mode 120. Copy the sprite image
  26677. to the floppy’s root directory before running. It’s not very fast. Jim
  26678. Bailey, Sunderland.
  26679. 6.3
  26680. •   Squirrel update − Digital Services have upgraded Squirrel from version
  26681. 1.07. Currently, Squirrel is being supplied with the original V1.07 disc
  26682. and manual and a V1.20 upgrade disc. A new manual is due out soon and
  26683. Digital Services will send all existing Squirrel owners this new copy
  26684. providing they have registered.
  26685. 6.3
  26686. •   VIDC enhancer & RISC-OS 3.10 − There can be problems using very early
  26687. Atomwide VIDC enhancer hardware with RISC-OS 3.10. It appears that if
  26688. the enhancer is software switched, RISC-OS 3.10 will automatically
  26689. switch it on which prevents the computer from starting up correctly. To
  26690. solve the problem, you have two choices: (a) at the command line, type
  26691. *FX 162,&BC,&80 and switch your machine off, then on again, to check
  26692. that the command has worked (full details are on page 14 in the RISC OS
  26693. 3.10 release note) or (b) return the enhancer hardware to Atomwide with
  26694. £5 and they will modify the hardware so that it works correctly.
  26695. 6.3
  26696. •   Vision Digitiser. As I concluded in my review of the monochrome
  26697. version of this product (Archive 5.12.42), the package is amazing value
  26698. for money. However, the supplied software is a little basic. Further
  26699. more, Robert Golightly at HCCS tells me that the software module
  26700. (promised in the !ReadMe file) to provide * commands and SWIs for users
  26701. to write their own programs has a priority below that of the 512-line
  26702. upgrade, and is not likely to appear in the near future.
  26703. 6.3
  26704. All is not lost, for the software – at least the monochrome version – is
  26705. written using Basic’s in-line assembler, and so can be modified by the
  26706. careful user.
  26707. 6.3
  26708. For example, as it stands, the !Vision application always demands 450Kb
  26709. of memory. For those with 1M machines, or those who like to multi-task
  26710. it with other memory-demanding applications, it would be useful to be
  26711. able to reduce this. Examination of the code reveals that a 320Kb screen
  26712. buffer is reserved, whatever screen mode you are using. 320Kb will be
  26713. needed for mode 21, but only 160Kb for modes 15 and 20, and 80Kb for
  26714. mode 12. If you haven’t a multi-sync monitor and want to save 160Kb of
  26715. memory when using !Vision, change the following lines of a copy of
  26716. !RUNIMAGE, having first checked that the first line of the !Run file
  26717. shows that you have Version 1.0, dated March 1992.
  26718. 6.3
  26719.   130 DIM M% 210000
  26720. 6.3
  26721.  8650 BNE mode_error
  26722. 6.3
  26723. 23260 EQUD 163840
  26724. 6.3
  26725. 23460 FN_work (163840)
  26726. 6.3
  26727. Then amend line 2 of !Run to read:
  26728. 6.3
  26729. wimpslot -min 288K -max 288K
  26730. 6.3
  26731. I’m working on other possible improvements to the software, such as mode
  26732. 67 compatibility, but it occurs to me that others might be doing the
  26733. same. If you are interested in participating in an informal user-group
  26734. for the Vision Digitiser, please send an SAE to Stuart Bell, 23 Ryecroft
  26735. Drive, Horsham, West Sussex RH12 2AW.  A
  26736. 6.3
  26737. TechSoft
  26738. 6.3
  26739. From 6.2 page 19
  26740. 6.3
  26741. TechSoft
  26742. 6.3
  26743. From 6.2 page 15
  26744. 6.3
  26745. Risc Developments (2)
  26746. 6.3
  26747. New Artwork
  26748. 6.3
  26749. Using RISC-OS 3
  26750. 6.3
  26751. Hugh Eagle
  26752. 6.3
  26753. Many thanks to all those who have sent in material about RISC-OS 3.10.
  26754. Hugh has done a lot of work for us in collating all this information, so
  26755. read it carefully, check it out on your own systems and let us know if
  26756. you find solutions to some of the problems and/or see more problems.
  26757. This kind of information is very valuable indeed in terms of helping
  26758. other people who have to go through the same learning curve as you, with
  26759. the new operating system.
  26760. 6.3
  26761. I think it would also be good to send in a few ‘I hadn’t realised that
  26762. you could... ...but it makes life much easier’comments.
  26763. 6.3
  26764. By the way, as at 28/11/92, N.C.S. actually has the £50 upgrades in
  26765. stock although A5000 owners will still have to be patient, I’m afraid.
  26766. Ed.
  26767. 6.3
  26768. (Throughout the column, references to RISC-OS 3 mean RISC-OS 3.10 unless
  26769. otherwise stated. HE)
  26770. 6.3
  26771. After ‘The Long Wait’ and an acute dose of ‘Bent Pin Anxiety’, I had, to
  26772. cap it all, ‘The Hunt For The Missing Apps 1 Disc’. After all that, I
  26773. was quite surprised to find that the machine actually worked when I
  26774. turned it on!
  26775. 6.3
  26776. Reconfiguring it so that it ran as well as it did before the upgrade,
  26777. was quite a fiddly process. The main hint I would give to anyone who
  26778. hasn’t yet done the upgrade is: watch your Fontmax settings!
  26779. 6.3
  26780. •   In the Memory section of !Configure don’t be misled by the illustra
  26781. tion on page 94 of the manual. You can not safely leave the “Font cache
  26782. limit” setting at zero and expect the operating system to default to a
  26783. sensible limit as you can with most of the other memory settings. Unless
  26784. you set “Font cache” to a reasonably large amount, you must set a larger
  26785. “Font cache limit”. (On a 4Mb machine, I have them set to 128Kb and
  26786. 512Kb respectively.)
  26787. 6.3
  26788. •   If you have a multisync monitor, read the bit on page 119 (in the
  26789. section on screen modes!) when deciding what settings to use for anti-
  26790. aliasing and cached bitmaps in the Fonts section of !Configure.
  26791. 6.3
  26792. •   Keith Lowe adds − Where the upgrade instructions tell you to hold down
  26793. the Delete key until the power-on self-test has been completed, they
  26794. mean don’t release the key until text has appeared on the screen!
  26795. Otherwise your old configuration will still be there and that can cause
  26796. no end of confusion!
  26797. 6.3
  26798. •   Ed Harris encountered problems in installing the user fit ROM carrier
  26799. board from IFEL to his A310. IFEL were very helpful in providing advice
  26800. and when Keith was still unable to track down his mistake, they sorted
  26801. it out and returned it by return with only a nominal charge to cover
  26802. their costs. Many thanks to IFEL.
  26803. 6.3
  26804. •   Mark Lambert reports problems trying to install RISC-OS 3 in an A310
  26805. fitted with a Watford 4Mb RAM upgrade (the second edition with a
  26806. vertical daughterboard holding the processor). Watford have told him
  26807. that a simple wire link is required on the RAM board but, as yet, they
  26808. have not told him the exact details. Does anyone happen to know the
  26809. details of the link required?
  26810. 6.3
  26811. •   Steve Hutchinson writes: I was assured that it was quite simple to do
  26812. the necessary hardware upgrade to my old A440. In the event, I managed
  26813. it without hiccup but it was not quite so simple. I had to remove the
  26814. main circuit board from the case − which means unplugging loads of
  26815. things in my machine with all its upgrades. If you haven’t reasonable
  26816. electronic experience, think twice!
  26817. 6.3
  26818. And is the upgrade worth it? For 1Mb or floppy disc only users, the
  26819. answer must surely be yes. It must be a godsend to have the standard
  26820. applications, plus fonts, plus modules, all in ROM. For hard disc owners
  26821. .... well, what do you think? Some readers have no doubts.
  26822. 6.3
  26823. Ed Harris, for instance, writes: All in all, I have found RISC-OS 3.1 to
  26824. be a great improvement on an already excellent operating system (RISC-OS
  26825. 2) and well worth the cost of the upgrade. However, I wonder whether
  26826. others share my disappointment that the improvements were not more
  26827. dramatic? Perhaps now is the time for us to begin to compile a Wish List
  26828. of things we would like to see in RISC-OS 4.
  26829. 6.3
  26830. Why not send your thoughts either to Archive or to me at the address at
  26831. the end of this column?
  26832. 6.3
  26833. Most programs work well in RISC-OS 3
  26834. 6.3
  26835. Robert Macmillan of Colton Software has written to point out (further to
  26836. Gerald Fitton’s comments in the Pipeline Column of Archive 6.1) that not
  26837. only do all versions of Pipedream from 3.10 onwards work in RISC-OS 3,
  26838. they all work better with RISC-OS 3. This is because RISC-OS 3 has the
  26839. latest versions of system software built in and these perform better
  26840. than the old versions supplied with RISC-OS 2. In particular, the font
  26841. manager is much, much faster and the benefits of having the fonts built
  26842. in make it possible for floppy disc users to make good use of fonts
  26843. without inordinate disc swapping.
  26844. 6.3
  26845. Robert suggests that Archive should publish a table showing which of the
  26846. most popular software packages work, and which don’t work or need
  26847. upgrading. Judging by the number of needless phone calls he has been
  26848. receiving, this would be of great benefit to users considering the
  26849. upgrade to RISC-OS 3.
  26850. 6.3
  26851. I think the drawback with this idea is that although most people will
  26852. report that most programs work perfectly well (and the list could
  26853. potentially fill much of the magazine) some programs that do work well
  26854. for most people seem to cause problems for some others.
  26855. 6.3
  26856. However, I do agree that it is important to emphasise that most programs
  26857. do work and so, to set the ball rolling, I confirm that, from my limited
  26858. experience and that of my friends, the following generally seem to work
  26859. well:
  26860. 6.3
  26861.    all the standard Acorn applications
  26862.    Impression 2.17 (but see below)
  26863.    Poster 1.21
  26864.    Artworks (all versions)
  26865.    Vector
  26866.    TWO
  26867.    Squirrel
  26868.    Pacmania
  26869.    E-Type
  26870.    Twin World
  26871.    Lemmings
  26872.    Gods
  26873. 6.3
  26874. Programs that need minor modifications
  26875. 6.3
  26876. •   Sigmasheet (Minerva) must have FPEmulator in the same directory, even
  26877. though that module is in ROM. (John Waddell)
  26878. 6.3
  26879. •   First Word Plus release 1.1 − As my current word processor is First
  26880. Word Plus release 1, I was worried by the assertion in the release notes
  26881. that this was unuseable under RISC-OS 3.1. This happily proved not to be
  26882. the case. If colour 14 within the WIMP palette is redefined, the menus
  26883. become legible. I have created an obey file to invoke 1WP (on the
  26884. monthly program disc) which loads a modified palette on entry and
  26885. restores the default palette on exit. Using this, I have experienced no
  26886. problems running 1WP. (Ed Harris)
  26887. 6.3
  26888. •   DiscTree does not work correctly under RISC-OS 3. Oak Solutions are
  26889. working on the problem.
  26890. 6.3
  26891. •   InterWord – My copy of InterWord has its own directory in the hard
  26892. disc root directory. It runs in 65Tube, which isn’t where it used to be
  26893. under RISC-OS 2, and appears under a different name. To get InterWord
  26894. going again, copy the new App2.!65Tube.!RunImage to the InterWord
  26895. directory and rename it as 65Tube; it should now be sitting alongside
  26896. !IWord in that directory. In the I/WORD.!IWORD.!RUN file, insert the
  26897. following line after Set Interword$Dir <Obey$Dir>:
  26898. 6.3
  26899. RMLoad ADFS::HD4.$.IWORD.65Tube
  26900. 6.3
  26901. (where HD4 is the name of the hard disc). Double click on !IWORD in the
  26902. usual way to start it.
  26903. 6.3
  26904. A similar method should apply to single floppy machines by substituting
  26905. the appropriate floppy name for that of the hard disc above. (Ken Cowap)
  26906. 6.3
  26907. •   Holed Out – I have a boot file on the hard disc which sets up the
  26908. machine with some applications on the iconbar and some more on the
  26909. pinboard. The golf game “Holed Out” finds this environment disagreeable
  26910. and won’t start. The following gets it going:
  26911. 6.3
  26912. *CONFIGURE DRIVE 0
  26913. 6.3
  26914. *MOUNT :0
  26915. 6.3
  26916.    <shift-break> (machine re-boots to bare-bones iconbar)
  26917. 6.3
  26918.    Click Drive 0 icon to get “Holed Out” filer
  26919. 6.3
  26920.    Double click !Boot
  26921. 6.3
  26922. Terminate the game with:
  26923. 6.3
  26924.    Shift/Break
  26925. 6.3
  26926. *CONFIGURE DRIVE 4
  26927. 6.3
  26928. *MOUNT:4
  26929. 6.3
  26930.    <ctrl-break> (machine re-boots to populated iconbar, etc) (Ken Cowap)
  26931. 6.3
  26932. •   Chocks Away – The flight simulator Chocks Away isn’t quite so fussy
  26933. about a populated iconbar and will generally start normally. However, if
  26934. it does object, it may help to try a <ctrl-break> followed immediately
  26935. by <escape>, which re-boots to an unpopulated iconbar, then double click
  26936. on !Chocks. (Ken Cowap)
  26937. 6.3
  26938. Other program problems
  26939. 6.3
  26940. Mike Williams has supplied a list of programs that he has found don’t
  26941. work under RISC-OS 3.1:
  26942. 6.3
  26943.    Ground Control Teletext Adaptor (At the A.U.      Show, Ground Control
  26944. said they weren’t      aware of any problems. HE.)
  26945. 6.3
  26946.    Clares’ Arcade Games
  26947.    Quazer
  26948.    StarTrader
  26949.    Arcendium
  26950.    Corruption
  26951.    Terramex
  26952.    Boogie Buggy
  26953. 6.3
  26954. Ed Harris has found several public domain applications that have failed
  26955. to run:
  26956. 6.3
  26957.    Mandelplot (garbage on screen − machine      locks)
  26958.    ChartDraw (“illegal window handle” error)
  26959.    Hyper (“illegal window handle” error)
  26960. 6.3
  26961. •   Computer Concepts admit that ShowPage does not work with RISC-OS 3 and
  26962. say that they have no plans to get it working with RISC-OS 3. There just
  26963. is not the demand for this product to make it worthwhile doing the
  26964. upgrade which is more like a complete re-write for the new operating
  26965. system.
  26966. 6.3
  26967. Denis Fox reports problems with:
  26968. 6.3
  26969. •   Impression (2.17) and LaserDirect (2.05) work much more slowly, even
  26970. with Fontsize set to 256Kb and Fontmax to 512Kb. There are regular poor
  26971. printouts, sometimes with patterned effects in what should be black
  26972. areas, hang ups when transferring lots of text between documents and
  26973. continual error messages when printing. (I have a similar setup but have
  26974. not noticed any deterioration in performance. HE.)
  26975. 6.3
  26976. To help the speed, I suggest you try NOT using the ROM fonts − then you
  26977. can have Quick Text switched on. To do this, add a FontRemove
  26978. Resources:$.Fonts. in the !Fonts.!Boot file before the FontInstall
  26979. <Obey$Dir>. command.
  26980. 6.3
  26981. I have once had the patterned effect in black areas but quitting and
  26982. restarting the printer driver cleared it. Ed
  26983. 6.3
  26984. •   Multistore V11 not printing with a Star LC24-200. (At the AU Show,
  26985. Minerva said there may be problems with earlier versions and that users
  26986. experiencing such difficulties should contact them quoting their version
  26987. number. HE.)
  26988. 6.3
  26989. •   Scanlight Plus 256 not working at all. (There are no known problems.
  26990. Are you sure you have a power supply connected to the board? You do need
  26991. the p.s.u. connected even on the A5000. Ed.)
  26992. 6.3
  26993. •   A number of people have had problems (mainly “illegal window handle”
  26994. errors) with versions up to 1.07 of my PD application PickAPic. I found
  26995. that there was an error in the code that only occasionally caused
  26996. problems in RISC-OS 2, but caused the program to crash quite often in
  26997. RISC-OS 3, presumably because of a change in the way the window manager
  26998. numbers its windows. Anyone who wants an upgrade to the latest version
  26999. please write to me at the address at the bottom of this column. (Hugh
  27000. Eagle)
  27001. 6.3
  27002. •   Droom – I can’t get Droom to work. It reports “Not enough system
  27003. sprite memory” whether I use Memalloc and the *Spritesize command (this
  27004. used to work in RISC-OS 2), or the new *ChangeDynamicArea command, or
  27005. whether I set the System sprites slider in the Task Manager window.
  27006. (Hugh Eagle)
  27007. 6.3
  27008. •   Compression − Computer Concepts have informed me that the release note
  27009. for version 3.10 is slightly too pessimistic when it claims that
  27010. Compression (up to version 1.10) does not work on RISC_OS 3.10. What
  27011. apparently happens is that sometimes when you compress a directory with
  27012. several files, the last file, instead of being processed, produces an
  27013. error message. It can then be compressed singly. (In the first two weeks
  27014. of working with the new OS, I have had no trouble with Compression, so
  27015. the problem appears to be marginal. HE) (Jochen Konietzko)
  27016. 6.3
  27017. •   Impression and the Pinboard − Can anyone tell me why the Pinboard has
  27018. such problems with Impression documents?
  27019. 6.3
  27020. When I drag a compressed document onto the desktop, the next reset will
  27021. produce an error message “Sprite does not exist”. Without Compression,
  27022. the document does appear on the desktop but the Impression icon is
  27023. replaced by the standard application icon. (Jochen Konietzko) (I seem to
  27024. have no difficulty with Impression icons on the Pinboard in my
  27025. Compression-less setup. HE)
  27026. 6.3
  27027. •   PC Emulator (version 1.6) – I applied the patch to my copy of the PC
  27028. Emulator (Version 1.6) and changed the filetype of the DOS partitions to
  27029. DOSDisc as recommended in the release notes. I then found that the
  27030. machine locked whenever I ran the emulator, even after a <ctrl-break>.
  27031. Things worked perfectly, however, after the machine had been powered off
  27032. and restarted. (Ed Harris)
  27033. 6.3
  27034. •   Trouble with !FontFX − It has already been documented, at least twice,
  27035. that !FontFX will not run under RISC-OS 3 and the suggested “fix” is to
  27036. reset Font$Path using *SetMacro. Having done this, I still can’t get it
  27037. to use the Trinity and Homerton fonts supplied in ROM. To get round the
  27038. problem, I have renamed the original RISC-OS 2 versions OldTrinity and
  27039. OldHomertn and installed them in my !Fonts directory on disc. Now
  27040. choosing these from the fonts list in !FontFX works beautifully. So far
  27041. there have been no side effects!
  27042. 6.3
  27043. It occurs to me that the problem may be that !FontFX is looking for
  27044. files called IntMetric and Outlines (there are lots of references to
  27045. these names in the !RunImage) whereas the files in ResourcesFS are
  27046. stored as IntMetric() and Outlines(). The real answer would be for the
  27047. program to be amended to accept either version of the filenames. I shall
  27048. speak to DataStore to find out if they intend to make the necessary
  27049. alterations. (Tom Harkness)
  27050. 6.3
  27051. The release notes say that FontFX must be more recent than 4.31 to work.
  27052. My version, 4.08, works fine so long as you don’t use ROM fonts. If you
  27053. do try to, it reports ‘Can’t find outlines’ and promptly exits from the
  27054. iconbar! All other fonts seem fine, even from multiple directories.
  27055. (Steve Hutchinson)
  27056. 6.3
  27057. •   Ovation – Ovation meets a problem or two with RISC-OS 3 despite its
  27058. recent update (version 1.35S). If text is indented (e.g. at the start of
  27059. a paragraph) and is also justified, the correct format is presented on
  27060. screen but when printed, the indented line projects to the right beyond
  27061. the text frame. It is understood that Risc Developments are working on
  27062. this. Also, if Ovation encounters a faulty outline font (e.g. containing
  27063. a zero-width character, not uncommon in some PD fonts) it puts out an
  27064. incorrect error message saying that the font cache is full. This bug is
  27065. more likely to be purely Ovation’s rather than in conjunction with RISC-
  27066. OS 3, but hasn’t been resolved as yet (except of course by ensuring that
  27067. outline fonts are fault-free). (Ken Cowap)
  27068. 6.3
  27069. •   ArcDFS – Since fitting the RISC-OS 3 upgrade, ArcDFS no longer works
  27070. correctly and consistently comes up with error messages. This causes me
  27071. great problems since, throughout our group of companies, we possess some
  27072. 50+ Acorn BBC units ranging from the old BBC Model B’s (yes, they’re
  27073. still going strong after eight years of service) through to Master
  27074. 128’s.
  27075. 6.3
  27076. We are only just moving on to Archimedes and to maintain our wealth of
  27077. information accumulated on our Beebs, I am transferring files from DFS
  27078. to ADFS via a set of external 5¼“ disc drives I have had connected to my
  27079. A3000. This has worked perfectly in the past with complete surfaces of
  27080. DFS discs being transferred to ADFS in seconds. Without ArcDFS, I am
  27081. left with only one solution − to *MOVE individual DFS files to 640Kb
  27082. ADFS discs using a Master Series Computer and then transferring these
  27083. 640Kb discs to the Archimedes. Clearly, this is a retrograde step after
  27084. the convenience of ArcDFS.
  27085. 6.3
  27086. I have been in contact with Dabs Press and, although they are aware of
  27087. the problem, they could not tell me whether or not they were going to
  27088. make the necessary modifications to their software! I sincerely hope
  27089. they receive a large enough response from their users to persuade them
  27090. to produce an upgrade for this product. (S. J. Furnell)
  27091. 6.3
  27092. •   !Alarm – A couple of tricky little bugs exist in the new Alarm
  27093. application. I’ve already reported these to Risc User and trust they
  27094. will advise Acorn in turn. If the Repeating Alarm facility is used to
  27095. operate, say, every first Monday of every month, it malfunctions when
  27096. the next month comes up to December. It advances a year instead of a
  27097. month, going from November 1992 to December 1993.
  27098. 6.3
  27099. Perhaps less important, but still a nuisance if you want to use it, is
  27100. the bug in the automatic BST to GMT facility. It refuses to accept
  27101. entries for two different years such as were needed at the recent change
  27102. on 25th October. Before that date, it should have been in order to enter
  27103. 6.3
  27104.    BST starts on Sunday 28th March 1993 at 01:00
  27105. 6.3
  27106.    BST ends on Sunday 25th October 1992 at 01:00
  27107. 6.3
  27108. but Alarm invalidates such an entry by altering the “starts” date to be
  27109. earlier than the “ends” date. If one capitulates and enters the two real
  27110. changeover dates for 1992, (hoping that Alarm will calculate forward
  27111. into 1993) Alarm does indeed respond with a date in 1993 but only about
  27112. 11 months ahead, on 1st March 1993. There is a fundamental difficulty
  27113. for the programmer here. The changeover date doesn’t, as far as I know,
  27114. follow a properly defined rule and tends to be arbitrary. I suspect that
  27115. the programmer intended to issue a reminder to the operator 11 months
  27116. after the last change so that the true date, known by then, could be
  27117. entered. However, the algorithm obviously needs re-examination. (Ken
  27118. Cowap)
  27119. 6.3
  27120. Can readers (or the manufacturers) offer any advice on how to overcome
  27121. problems with these programs (or any others that have proved
  27122. troublesome)?
  27123. 6.3
  27124. Hardware problems
  27125. 6.3
  27126. •   Oak SCSI “Free Space” display – My Oak SCSI hard disc won’t use the
  27127. new ‘Free Space’ window but uses the old RISC-OS 2 ‘stop-everything-and
  27128. press-space’ window. The Release notes suggest that SCSIFiler will fix
  27129. this for the Acorn SCSI card, but it doesn’t appear to for my Oak
  27130. (v.1.16). Any thoughts? (Steve Hutchinson) (The solution to this was
  27131. explained in Archive 5.5 p40. Ed.)
  27132. 6.3
  27133. •   Digitisers, SCSI and the RS232 port – I managed to get RISC-OS 3
  27134. fitted to my faithful A440 only to discover that my Technomatic
  27135. (Brainsoft) Multipod Professional digitiser not only does not work with
  27136. RISC-OS 3.10 but the computer will not work with the podule fitted.
  27137. Richard Brain says that he was not aware of a problem and there are
  27138. currently no plans for an upgrade, but he will have a look when he gets
  27139. time to see if an upgrade is possible. In the meantime, I have no video
  27140. digitiser, no stereo digitiser and no extra RS232 ports.
  27141. 6.3
  27142. I mentioned the problem to Malcolm Banthorpe and he tells me that his
  27143. Pineapple digitiser is now “unwell” with RISC-OS 3.10. I wonder whether
  27144. there are some differences in the way that podules download their ROM
  27145. modules and initialise under RISC-OS 3.10?
  27146. 6.3
  27147. I also hear rumours that people are experiencing interrupt problems with
  27148. SCSI interfaces causing data loss on the RS232 port (interrupts not
  27149. returning quickly enough to avoid loss of incoming data on the port).
  27150. Apparently, uncached Morley cards may be particularly prone but I have
  27151. no first hand experience. It certainly fits in with Malcolm Banthorpe’s
  27152. experience on his digitiser which seems to be suffering from an overdose
  27153. of interrupts. (Tim Nicholson)
  27154. 6.3
  27155. Laser Direct RISC-OS 3 printer driver?
  27156. 6.3
  27157. It seems barely credible, but a whole year after RISC-OS 3 was first
  27158. released, the Rolls Royce of Archimedes printers still lacks a RISC-OS 3
  27159. printer driver. For many purposes this doesn’t matter, but rotated fonts
  27160. seem a bit pointless if you can’t print them out, and users with more
  27161. than one printer would like to be able to access their LD using the
  27162. Print Manager.
  27163. 6.3
  27164. Readers have been getting contradictory explanations from Computer
  27165. Concepts: one was told that they’ve been too busy writing Artworks,
  27166. while another was told that Acorn haven’t given them a printer driver
  27167. specification yet! (There’s an element of truth in both. Let’s just say
  27168. that it is a non-trivial task to write a printer driver to work with
  27169. Acorn’s Print Manager. Ed.)
  27170. 6.3
  27171. Other printer problems
  27172. 6.3
  27173. •   Epson MX100-III – My printer is an ageing Epson MX100-III. Using the
  27174. standard settings provided by the Acorn printer driver, I find thin
  27175. lines can disappear. e.g. the staves in a Rhapsody score. Using the
  27176. highest resolution setting (120 x 216 dpi dithered) produces an
  27177. excellent standard of output but 1.5 to 2 times slower than the RISC-OS
  27178. 2 driver (at a resolution of 120 × 144 dpi). (Ed Harris)
  27179. 6.3
  27180. •   Print buffering – I have an Archimedes 420/1 expanded to 4Mb memory,
  27181. with twin Cumana 5¼“ disc drives and recently equipped with ARM3 and
  27182. RISC-OS 3.1. Ever since I installed RISC-OS 3.1, I have had a problem
  27183. with printing. I use Impression most of the time but the same problem
  27184. arises with Draw, Acorn DTP, DrawPlus, etc, etc. I shall put the problem
  27185. in the form of a question: What is the point of a printer buffer that
  27186. does not release control of the machine back to the user until the print
  27187. job is finished?
  27188. 6.3
  27189. I wrote to Acorn as follows: Whatever setting I use for PrinterBuffer
  27190. Size, it just does not seem to make any difference. I have 4Mb of memory
  27191. and use Impression a great deal. Sometimes I set the PrinterBufferSize
  27192. as high as 512Kb but the computer does not return control to the desktop
  27193. until the document is completely printed. Under RISC-OS 2, I used a
  27194. printer buffer program and found that I was able to work on a new
  27195. document within a minute or two of sending the previous one to the
  27196. printer provided the buffer was set high enough to accommodate all of
  27197. the data being sent to the printer. Now the machine is always tied up
  27198. until the printing is complete. How does one get the printer buffer to
  27199. work? I use *Configure PrinterBufferSize to set the size of the buffer.
  27200. Is there another command that I can use to make it operational and is it
  27201. possible to turn it off (*Configure PrinterBufferSize 0Kb sets it to the
  27202. default of 1Kb) and use one of the many printer buffer programs that are
  27203. available?
  27204. 6.3
  27205. Acorn (Peter Dunn) replied: “Although the printer buffer does work in
  27206. that data is passed into the buffer, control is not released back to the
  27207. user until the print job is finished.”
  27208. 6.3
  27209. I have tried RMKilling the BufferManager but that stops all data being
  27210. sent to the printer.
  27211. 6.3
  27212. I have devised a work-around but it is a little long-winded:
  27213. 6.3
  27214. 1. Have two versions of the chosen printer driver on the iconbar and
  27215. make them active.
  27216. 6.3
  27217. 2. Set one (F) to send the data for the printer to a file on the hard
  27218. disc and set the other (P) to send the data to the parallel or serial
  27219. printer.
  27220. 6.3
  27221. 3. Select (F) by clicking on it and ‘print’ the document. A file called
  27222. Printout will appear on the hard disc.
  27223. 6.3
  27224. 4. Change the name of the file called Printout to, say, Printoutx.
  27225. 6.3
  27226. 5. Select (P) by clicking on it and drag Printoutx onto the Printer icon
  27227. that is yellow.
  27228. 6.3
  27229. The file will now print in the background and control is instantly
  27230. returned to the user. Step 4 is not strictly necessary but is useful if
  27231. you are printing longish documents and wish to, as it were, stack them
  27232. ready for sending to the printer. If one does not change the name to
  27233. something unique, there is a danger of overprinting one file with
  27234. another. Instead of the hard disc one may, of course, use a floppy or
  27235. RAMFS.
  27236. 6.3
  27237. This is quite a laborious work-around when one has a printer buffer
  27238. built in (so one would think) to RISC-OS 3.1. A better arrangement must
  27239. be possible and so I should be grateful for any hints or tips the
  27240. readers can give. (M. P. Ireland)
  27241. 6.3
  27242. •   Epson FX-105 – The driver for the Epson FX-85 does not work with the
  27243. Epson FX-105 even though the printer manual suggests that they are
  27244. virtually identical apart from the carriage width. The printout is
  27245. always aligned along the left hand side even when it is supposed to be
  27246. centered, etc. Furthermore, large letters, being sent in several
  27247. separate lines, are often incorrectly aligned from top to bottom. When I
  27248. raised this in my letter to Acorn, they replied as follows:
  27249. 6.3
  27250. “The Epson FX-105 does not support the ESC $ (remove leading white
  27251. space) options supported by the FX-85 but does however support NLQ text
  27252. printing. The decision by Epson not to support ESC $ in its newer
  27253. printers has only recently come to light when testing the Epson LX-100.
  27254. We have written a driver for the LX-100 which I am sure you will find
  27255. works correctly with your printer.”
  27256. 6.3
  27257. A copy was sent to me and I can confirm that it does indeed work. (M. P.
  27258. Ireland)
  27259. 6.3
  27260. •   Bug in !Printers − If you configure two printers of the same type
  27261. (e.g. a 300dpi HPLJ-2 and a 150dpi HPLJ-2) then delete the first one,
  27262. !Printers crashes with an address error. (Mike Williams)
  27263. 6.3
  27264. •   LaserJetII printer driver and Qume Crystalprint Series II – My problem
  27265. concerns the LaserJet II printer driver. Quite simply, I always get an
  27266. extra blank sheet for every page printed. Also stray characters appear
  27267. in the left margin. The Qume CrystalPrint Series II printer is very
  27268. similar to that used initially by Computer Concepts for their Laser
  27269. Direct series, but mine isn’t a Laser Direct model.
  27270. 6.3
  27271. In the early days of RISC-OS 2, I vaguely remember I had a similar
  27272. problem that was solved only when Acorn (fairly quickly) brought out
  27273. another printer driver.
  27274. 6.3
  27275. In my efforts to solve the problem, I’ve tried lots of things – like
  27276. changing margins, etc, etc. I’ve had long discussions with Gerald
  27277. Fitton, too. From him, I know that others have plenty of problems,
  27278. though perhaps not quite like mine. The silly thing is that all was OK
  27279. with the RISC-OS 2 driver but, despite the impression given in Risc
  27280. User, neither of us thinks that RISC-OS 2 drivers can be used with RISC-
  27281. OS 3. Is this correct, I wonder? If they can be used, that would be a
  27282. good temporary solution. (John Jordan)
  27283. 6.3
  27284. •   Getting the page length right – After quite a number of abortive
  27285. attempts to set the page length for 12 inch fanfold paper, I finally
  27286. found out that any changes I make become effective (at least on my
  27287. combination of machines) only after I have saved all changes, quit and
  27288. then reloaded the printer driver. (By the way, the correct setting for
  27289. my Fujitsu DL1100 printer, using the Epson LQ860 emulation is, for some
  27290. inscrutable reason, 12.309 inches, 72 lines). (Jochen Konietzko)
  27291. 6.3
  27292. •   Panasonic KX-P1124 – Probably my most difficult problem was with the
  27293. printer drivers. The old RISC-OS 2 drivers just have to be abandoned −
  27294. they merely generate an error message. My printer happens to be a
  27295. Panasonic KX-P1124 (24-pin dot matrix, monochrome) but Acorn haven’t
  27296. seen fit to include any Panasonic printers at all. Though they blandly
  27297. say that one of the others will probably be near enough, in fact, it
  27298. requires a considerable amount of research to be confident that the
  27299. range of control codes is (a) sufficient to fully exploit the machine’s
  27300. capabilities and (b) doesn’t contain any alien codes to cause unwanted
  27301. results. At the end of the day (or several!) I reduced the probables to
  27302. two, the Epson LQ860 and the NEC P6+ (despite the fact that both
  27303. machines are colour printers). I had misgivings about the NEC which
  27304. includes, in its control code repertoire, some which started with 28
  27305. instead of the old familiar 27 (Escape). The matter was finally clinched
  27306. when I was able to question an Acorn representative at the Acorn User
  27307. Show. He told me that quite definitely I should use the Epson LQ860. So
  27308. this I do, and without any problems so far. I haven’t even edited out
  27309. the control codes for the colours − the driver is used, unmodified. (Ken
  27310. Cowap)
  27311. 6.3
  27312. Where are the hare and the tortoise?
  27313. 6.3
  27314. Can I get the hare and tortoise icons that came with my ARM3 back on the
  27315. iconbar? Or do I have to tell people that if they want E-Type to go at a
  27316. playable pace they have to press <F12> then type “Cache off” then press
  27317. <return> twice before running it?! (I just use
  27318. 6.3
  27319. RMEnsure Arm3Icon 0.9 Run scsi::4 .$.<leafname>.!Arm3
  27320. 6.3
  27321.  in my !boot file and... hare presto! Ed.)
  27322. 6.3
  27323. Programmers’ Reference Manual
  27324. 6.3
  27325. At the Acorn User Show, a “beta” copy of the new PRM was on sale in
  27326. photocopy form for £120. The final version will apparently be available
  27327. “in the first quarter” of 1993. It is about 50% bigger than the RISC-OS
  27328. 2 manual and will fill six volumes. From my brief inspection, it looks
  27329. as if it contains quite a lot more explanatory material than its
  27330. predecessor. I was told that neither the price of the final version nor
  27331. details of the trade-in arrangements (if any!) have yet been fixed.
  27332. 6.3
  27333. Various hints and tips:
  27334. 6.3
  27335. •   Problem with Impression dongle − You can’t write to a printer when the
  27336. Impression dongle is fitted unless you have run the Impression appli
  27337. cation first. (Mike Williams)
  27338. 6.3
  27339. •   Summer time blues − Some C programs (e.g. PVray) get the time wildly
  27340. wrong when *BST is configured. (Mike Williams)
  27341. 6.3
  27342. •   Bug in !SciCalc − It gives wildly inaccurate results to the <±>
  27343. function for some values, e.g. if you enter “1<Exp>56” then press <1/x>
  27344. to give “10E−57” then press <±> you get the surprising result: “10E−58”.
  27345. If you press <±> again, you get “10E−41”. (Mike Williams)
  27346. 6.3
  27347. •   Where did this file come from? − There are quite a few ways in which
  27348. <adjust> clicking can be very helpful. I’m sure you all know that
  27349. <adjust> double-clicking a directory opens it and closes the parent and
  27350. that using <adjust> to close the directory opens up the parent. You may
  27351. even know that clicking the close icon with <adjust> while holding down
  27352. <shift> actually opens the parent without closing the directory. What
  27353. you may not have noticed is that you can do the same with (some)
  27354. applications. With most applications, it seems, <adjust> double-clicking
  27355. a file loads the file and closes the directory from which it came. (I
  27356. think this is a function of the Filer and is therefore true for all
  27357. applications and files. HE.) Then, if you click in the close box with
  27358. <adjust>, holding <shift> at the same time, the directory from which the
  27359. file came appears on screen without the file disappearing from view.
  27360. With Impression, however, there is no need to hold <shift> as well −
  27361. just using <adjust> on the close box brings up the directory viewer in
  27362. which the file is saved.
  27363. 6.3
  27364. Oh, and I’ve only just discovered that if you draw a window’s scroll bar
  27365. with <adjust>, you can move about in both x and y directions! (Paul
  27366. Beverley)
  27367. 6.3
  27368. •   Rubber-banding − Those who have gone straight to RISC-OS 3 without
  27369. reading the manual (like Ed!) may not have noticed that you can use
  27370. rubber-banding to select a group of files. So instead of <adjust>
  27371. clicking every individual file you want to select, you can click
  27372. <select> in the space between two file icons and, as you drag, a red
  27373. bounding box appears which you can release when it is over the files you
  27374. want. Using <adjust> instead of <select> simply adds files to those
  27375. already selected but note that if you go over a file that is already
  27376. selected, it is then de-selected. (Paul Beverley)
  27377. 6.3
  27378. •   SerialDeviceDriver module − On an A5000, never unplug the module
  27379. called “SerialDevice Driver”, as the following strange things will
  27380. happen. After a power off/on the machine will boot up but, during
  27381. booting, an error message “Error from Task Manager” will appear and
  27382. there is only a “Cancel” button to click on. Then the boot up is
  27383. finished correctly but no Taskmanager is present! It will only reappear
  27384. if you double-click on any file with the new Desktop filetype (&FEA),
  27385. even if this is 0 bytes long! In addition, the Taskmanager will not
  27386. function correctly in all cases: try to get an “!Edit Task Window” now.
  27387. Bug or not? (Carsten Bussman)
  27388. 6.3
  27389. •   Double-clicking into Basic − On my first machine (which was killed by
  27390. my dealer while trying to fit a SCSI hard drive) I was able to enter BBC
  27391. Basic V directly by double-clicking into the system’s start-up message
  27392. window (“RISC-OS ... initialising”). This does not work with my current
  27393. machine (Serial no. 1009939); I don’t know why. This was a nice feature
  27394. which I’m missing now, so why isn’t it implemented in all RISC-OS 3
  27395. ROMs? (Carsten Bussman)
  27396. 6.3
  27397. •   Inserting path names into !Edit − Try dragging any file or directory
  27398. into an !Edit window while pressing the Shift key. This will give the
  27399. file’s pathname. (Carsten Bussman)
  27400. 6.3
  27401. •   “Menu Area Full” error in FormEd – Captain K. J. Tompkins reports the
  27402. error “Menu Area Full (Internal code 6560,1)” from his version of
  27403. !FormEd. This is probably because he has one of the earlier versions of
  27404. this program which only allows limited space for building its menus and
  27405. is defeated if there are too many fonts installed. If so, it is fairly
  27406. easy to cure: in the Basic program called !RunImage inside the !FormEd
  27407. directory there is a line that reads something like:
  27408. 6.3
  27409. DIM menufree% &1800: menuend% = menufree%+&1800
  27410. 6.3
  27411. (this is at line 790 in the version I’m now looking at). If each of the
  27412. two &1800’s is replaced by &2000, so that the line reads:
  27413. 6.3
  27414. DIM menufree% &2000: menuend% = menufree%+&2000
  27415. 6.3
  27416.  the program should work.
  27417. 6.3
  27418. (Note: this hint does not apply to all versions of FormEd) (Hugh Eagle)
  27419. 6.3
  27420. •   Filer_Run syntax − it seems that the command
  27421. 6.3
  27422. *Filer_Run <App$Dir>
  27423. 6.3
  27424. (where App$Dir is a system variable set to the name of an application)
  27425. doesn’t run the application as you might expect. What it does is to open
  27426. a filer window on the application’s directory with “<App$Dir>” (not the
  27427. actual pathname) in the title bar.
  27428. 6.3
  27429. The following syntax, however, does seem to work:
  27430. 6.3
  27431. *Set Alias$FR Filer_Run <App$Dir>
  27432. 6.3
  27433. *FR
  27434. 6.3
  27435. *UnSet Alias$FR
  27436. 6.3
  27437. (this is equivalent to the old trick that used to be needed in RISC-OS 2
  27438. to open a directory viewer with *Filer_OpenDir). (Hugh Eagle)
  27439. 6.3
  27440. •   *FontRemove syntax − The FontRemove star command seems to be very
  27441. fussy. You have to tell it the name of the directory that you want to
  27442. remove in exactly the form in which it is included in the Font$Path
  27443. system variable. For instance, if you want to remove
  27444. RAM::RamDisc0.$.!Fonts. from Font$Path you must type
  27445. 6.3
  27446. *FontRemove RAM::RamDisc0.$. !Fonts.
  27447. 6.3
  27448. including both the disc name (RamDisc0) and the full stop at the end.
  27449. (Robert Chrismas has sent in a handy application called !FontsCut which
  27450. lists the directories currently included in Font$Path with numbers
  27451. beside them and all you have to do is type in the number corresponding
  27452. to the directory you want to remove. This is included on the monthly
  27453. program disc.) (Hugh Eagle)
  27454. 6.3
  27455. •   Configuring Shift Caps − In the Caps lock section of the Keyboard
  27456. window of !Configure, the effects of “Caps lock on” and “Shift caps”
  27457. seem to be reversed. In other words, selecting “Caps lock on” means that
  27458. holding down <shift> reverts to lower case whereas selecting “Shift
  27459. caps” means that you get upper case regardless of whether <shift> is
  27460. held down or not. (Hugh Eagle)
  27461. 6.3
  27462. •   Mouse button codes – If you enter and run the following simple Basic
  27463. program:
  27464. 6.3
  27465. REPEAT
  27466.   MOUSE X,Y,B
  27467.   PRINT TAB(10,10)B
  27468. UNTIL FALSE
  27469. 6.3
  27470. then watch what number is displayed on the screen as you press the
  27471. various mouse buttons you will see:
  27472. 6.3
  27473. no button   0
  27474. 6.3
  27475. Select      4
  27476. 6.3
  27477. Menu        2 for an instant, followed by 0
  27478. 6.3
  27479. Adjust      1
  27480. 6.3
  27481. The behaviour of the menu button has changed from RISC-OS 2, I think.
  27482. Those programs that are interested only in detecting whether the button
  27483. has been clicked won’t be affected, but the change can cause problems
  27484. for programs that want to detect whether the Menu button remains held
  27485. down. Luckily, there is a simple solution: the function
  27486. 6.3
  27487. INKEY(-11)
  27488. 6.3
  27489. will return the value TRUE however long the Menu button is held. (Hugh
  27490. Eagle)
  27491. 6.3
  27492. •   Getting Art Nouveau to run – Hands up those who remember Art Nouveau?
  27493. Well, this excellent old program has one quirk, namely that you have to
  27494. hold down the menu button while you move round the menu tree until you
  27495. make your selection. So, because of the changed functioning of the mouse
  27496. button (see above), it doesn’t work in RISC-OS 3.1 unless you make a
  27497. slight modification. In the Basic program called ArtNouveau from the
  27498. directory ANfiles at line 30950 in my version there is a line that
  27499. reads:
  27500. 6.3
  27501. WHILE stayopen AND mbut=2
  27502. 6.3
  27503. I have found that altering this to:
  27504. 6.3
  27505. WHILE stayopen AND INKEY-11
  27506. 6.3
  27507. restores the program to health. (Hugh Eagle)
  27508. 6.3
  27509. •   Using a TaskObey file to display a message – The new filetype
  27510. “TaskObey” is useful if you want the !Run file of an application to pop
  27511. up a message in a window without halting the whole system. You might use
  27512. this for instance to display a warning to change the setting of your
  27513. printer. Thus, to display “This is a message” in a window, create a file
  27514. called, say, Message containing:
  27515. 6.3
  27516. Echo This is a message
  27517. 6.3
  27518. set the filetype to TaskObey and include, in the application’s !Run
  27519. file, the line
  27520. 6.3
  27521. Filer_Run <Obey$Dir>.Message
  27522. 6.3
  27523. If you had set the filetype to Obey, the message would pop up moment
  27524. arily then disappear before the application loaded. (Hugh Eagle)
  27525. 6.3
  27526. •   Deskboot files and the Pinboard – The User Guide explains how to
  27527. create a !Boot file to boot the computer in your desired configuration.
  27528. It adds that, when saving the !Boot file, information to start up
  27529. applications produced before RISC-OS 3 is not saved automatically. To
  27530. get round this, it explains how to rename the !Boot file as Deskboot and
  27531. to incorporate it in a !Boot application. It goes on to explain how to
  27532. edit the Deskboot file, either to remove or to add lines as necessary.
  27533. 6.3
  27534. If you use the Pinboard as I do, some icons will be changed on a regular
  27535. basis. For example, I have regularly used files which change each month.
  27536. If the Deskboot file is saved each time the Pinboard is changed, a
  27537. certain amount of what the User Guide calls “hand editing” would have to
  27538. be done each time a change is made, to remove or add relevant
  27539. instructions.
  27540. 6.3
  27541. There is an easy solution. Set up your Desktop once and save the
  27542. Deskboot file. Then click <menu> over an empty space on the desktop and
  27543. save the Pinboard settings in the Pinboard file in your root directory.
  27544. Now drag your Deskboot file into !Edit (or Shift-double-click on it) and
  27545. delete all the lines which begin “Pin”. Alter the line “Pinboard” or
  27546. “Pinboard -Grid” to read “Run Pinboard” or “Run Pinboard -Grid”.
  27547. 6.3
  27548. Future changes to the Pinboard setting now need be saved only to the
  27549. Pinboard file in your root directory. (John Waddell)
  27550. 6.3
  27551. Ken Cowap warns that a DeskBoot file can easily be unnecessarily
  27552. cluttered if, for instance, there are a number of unwanted items on the
  27553. screen when it is made. This will incur a penalty in the time taken to
  27554. boot up − his started at two and a half minutes before he trimmed it
  27555. ruthlessly.
  27556. 6.3
  27557. •   ADFS buffers − According to Acorn’s telephone help line, the bug which
  27558. made it advisable to configure the adfs buffers to zero has been fixed!
  27559. (According to Computer Concepts, unless the buffers are configured to
  27560. zero, it is vital to dismount disks before removing them for good from
  27561. the machine, because otherwise there may be trouble later.) (Jochen
  27562. Konietzko)
  27563. 6.3
  27564. •   OS_Byte calls and the serial port – I use my A3000 for many purposes,
  27565. one of the more important being as a terminal to our mainframe computer.
  27566. The software for this I have written myself in Basic. After the upgrade,
  27567. my terminal program wouldn’t work. It would not accept characters from
  27568. the serial port. I tried using the serial port utility module supplied
  27569. with the upgrade, but this did not help.
  27570. 6.3
  27571. After a lot of experimenting, we finally discovered that if we changed
  27572. all the *FX calls for SYS “OS_Byte” calls, then the program would work.
  27573. It still puzzles me why two supposedly similar commands should give
  27574. different results! (S. J. Furnell)
  27575. 6.3
  27576. •   Z88 Filers – The Release Note says that the !Z88 filer supplied with
  27577. Pipedream requires interactive filing to be off. You’ll be pleased to
  27578. know that David Holden’s !Z88 filer (Careware 7) suffers from no such
  27579. problems. (Steve Hutchinson)
  27580. 6.3
  27581. •   Programs that call machine code from Basic – An application I used a
  27582. lot, !BPrint (Risc User) wouldn’t run with RISC-OS 3, and the cure for
  27583. this may well apply to other applications organised in a similar layout,
  27584. i.e. using a central Basic program calling a separate piece of machine
  27585. code. The cure was to re-assemble the code under RISC-OS 3; obviously
  27586. there is some small difference between its assembler and that of RISC-OS
  27587. 2. In this particular application, its “ancestor” (the program developed
  27588. over a period of time), a program called FileList from vol.2 issue 5 was
  27589. rerun to produce the assembled file BLIST which was substituted for the
  27590. original. (Ken Cowap)
  27591. 6.3
  27592. •   Mode number conflicts – A program for plotting Mandelbrot diagrams
  27593. failed with RISC-OS 3 and the manner of its failure may indicate a cure
  27594. for others. This particular program called a Mode 40 which didn’t exist
  27595. under RISC-OS 2 but which was specially designed and provided with the
  27596. program. RISC-OS 3 of course does have a native Mode 40 and a clash
  27597. between it and the “special” gave rise to the error report. The cure was
  27598. to rename the “special” to a mode number outside the range provided with
  27599. RISC-OS 3, in this case Mode 50. (Ken Cowap)
  27600. 6.3
  27601. •   Setting !Alarm options – This is a minor matter, unless you are trying
  27602. to set your own !Alarm display format in a !Boot file. This you do with
  27603. a Set Alarm$Options line (p136 App Guide). The quotes are omitted. This
  27604. is my (working) line:
  27605. 6.3
  27606. Set Alarm$Options -format “%z24:%mi %zdy.%zmn.%zyr”
  27607. 6.3
  27608. If you use a !Boot file and !Alarm, put it in to see my favourite
  27609. display format! (Steve Hutchinson)
  27610. 6.3
  27611. Miscellaneous comments
  27612. 6.3
  27613. •   Surely a ‘grown up’ operating system shouldn’t say, “Disc error 10 at
  27614. :0/00000000” when you try to read an unformatted disc?
  27615. 6.3
  27616. •   It seems strange that !Configure requires you to press <return> after
  27617. typing into a writable icon. This is not normal RISC-OS convention.
  27618. 6.3
  27619. •   It’s a shame that they didn’t manage to squeeze some suitable backdrop
  27620. sprites onto one of the RISC-OS 3 discs. Those who have access to
  27621. Windows 3 might like to know that its wallpaper bitmaps seem to work
  27622. very well on the RISC-OS 3 Pinboard, and it is very easy to transfer
  27623. them from an MS-DOS floppy, via !ChangeFSI (on the Support disc), into
  27624. sprite format on an Archimedes disc. The file called “leaves.bmp” makes
  27625. an excellent seasonal backdrop (I’m writing this in October!).
  27626. 6.3
  27627. Alt-key combinations
  27628. 6.3
  27629. The last couple of issues of Archive have contained lists of Alt-Key
  27630. combinations in RISC-OS 3.1. To complete the picture I would add:
  27631. 6.3
  27632. To get accents ( ´ ` ¨ ^ ° ¸ ) on their own, press the appropriate Alt-
  27633. key combination (e.g. Alt-[ for a ´ ) then the space bar.
  27634. 6.3
  27635. Alt-Spacebar gives a “hard space” or “non-breaking space” (the sort you
  27636. put between “NR2” and “2SD” if you don’t want Archive’s postcode
  27637. “NR2 2SD” to be split over two lines.)
  27638. 6.3
  27639. I have put a diagram of the keyboard showing the Alt-key combinations
  27640. below, and I hope that Paul will put the drawfile on the monthly program
  27641. disc.
  27642. 6.3
  27643. Incidentally, I am a bit puzzled about the character (code 173) that is
  27644. produced by the Alt-hyphen combination. What’s it for? I thought at
  27645. first that it was the “soft hyphen” that is described on page 109 of the
  27646. Impression 2 manual, but I now see that this is produced by Ctrl-hyphen
  27647. (this character – code 31 – is normally invisible but indicates a
  27648. preferred place for breaking a word with a hyphen at the end of a line;
  27649. it works even if the hyphenation module is not present). By contrast,
  27650. character 173 is, so far as I can see, always visible (as a hyphen if
  27651. the font follows the Acorn standard) but its effect is to prevent a word
  27652. into which it is inserted ever being broken over the end of a line even
  27653. if hyphenation is switched on. Am I correct in describing it as a “hard
  27654. hyphen”? (Well, I can think of one application. Suppose you want to use
  27655. a word like “pray­ers” where you deliberately hyphenate the word to
  27656. refer to the people doing the praying. In that case, if it were an
  27657. ordinary hyphen, the word might get split at the end of a line. Using a
  27658. ‘hard hyphen’ avoids the split. Ed)
  27659. 6.3
  27660. The upgrade again
  27661. 6.3
  27662. Finally, I thought it would be good to take a slightly light-hearted
  27663. look at the subject as we hear the experiences that Rob Wears had in
  27664. fitting and using RISC-OS 3 on an A310...
  27665. 6.3
  27666. I finally managed to get my grubby mitts on the RISC-OS 3 upgrade at the
  27667. Acorn User show, and arrived back home with that odd mixture of terror
  27668. and excitement that comes from having to take the lid off the machine.
  27669. I’ve fitted one or two things in the past, like the soldered 4MByte RAM
  27670. upgrade, but no matter how many times I do it, it’s still a bit like
  27671. performing neurosurgery on a close friend. Will Archie pull through,
  27672. Doc? Actually, fitting was a lot easier than I’d thought. I used the
  27673. IFEL carrier board, as their memory upgrade has proven so reliable. My
  27674. only source of concern was the discrepancy between their fitting
  27675. instructions and the ones supplied by Acorn which alluded to changing
  27676. links on the mother board. I followed the IFEL guidelines, which had the
  27677. link changes on their board, and waited anxiously for the machine to
  27678. explode when I switched it on. No problem, apart from the fact that I
  27679. bypassed the desktop and ended up at the command line. Still, the
  27680. desktop was easily accessible with a simple “*” command.
  27681. 6.3
  27682. The hard drive icon was where it should be (and no longer jumped around
  27683. when I mounted or dismounted the disc!) and I am pleased to say that I
  27684. encountered no problems with the Oak SCSI board (version 1.16 of SCSI
  27685. driver).
  27686. 6.3
  27687. I couldn’t resist the urge to delve into the Apps directory, and here I
  27688. encountered my first problem. Initially, I couldn’t get !Edit to load
  27689. from Apps and was greeted with the wonderfully informative message ‘File
  27690. “Basic” not found’. Fighting the sudden tide of panic (“It wouldn’t work
  27691. at all if the ROM legs were snapped off, idiot!”) I checked the module
  27692. list via the command line and found that I was apparently the lucky
  27693. owner of the one set of chips which Acorn had shipped without putting
  27694. Basic on board first. I was about to fall on my soldering iron in
  27695. despair when I thought of checking the status of the system modules
  27696. using *ROMModules and found that the Basic module was unplugged. I
  27697. reinitialised the module, and !Edit worked fine. There, that wasn’t too
  27698. bad − the hair will probably grow back and nobody will notice the
  27699. teethmarks on the manual....
  27700. 6.3
  27701. Incidentally, the ARM3Support module was also unplugged and therefore
  27702. the *Cache command wouldn’t work, but I’d got the hang of things by now,
  27703. and pressed on happily. I then UNPLUGged the modules that I thought I
  27704. wouldn’t need (old habits die hard) like the Econet and NetFS modules −
  27705. each unplug command was greeted with the comment “xxxx module not found”
  27706. yet a subsequent check revealed that the module had been unplugged
  27707. correctly − odd! Archie hadn’t behaved like this before his lobotomy. It
  27708. was a bit unnerving, like suddenly finding the Queen Mother skateboard
  27709. ing down your front drive.
  27710. 6.3
  27711. I then set about gingerly reconstructing the !Boot option for the hard
  27712. disc, feeding the bits to my new Archie in small, digestible chunks.
  27713. Compression (version 1.10) and !Spark both worked fine, after I
  27714. remembered not to set the “Newer” option for copying. However, Archie no
  27715. longer likes the “OS_UpdateMEMC” call which I had used to speed up the
  27716. ROMs. This is now treated with the same degree of horror as if I’d just
  27717. offered it deep-fried weevil for tea, and the machine has to be kicked
  27718. out of its sulk with a hard reset. I initially and unjustly blamed the
  27719. old OSSys module, but this actually seems to be fine and is the only
  27720. real survivor from my old collection of useful bits and pieces − have
  27721. they STILL forgotten to put a *SYS command in?
  27722. 6.3
  27723. The next little gem was the “ChangeDynamic Area” calls which are
  27724. automatically saved in the desktop !Boot file − these override the CMOS
  27725. RAM settings and I couldn’t work out why the system sprite area remained
  27726. so large despite all my efforts to shrink it. And remember, Gentle
  27727. Reader, not to save the !Boot file in a Compression directory because,
  27728. despite what they all say, those teethmarks in the manual do show! On
  27729. the brighter side, I found that the configured startup language was not
  27730. the desktop, which explained Archie’s new enthusiasm for the command
  27731. line. The number for the configured language of your choice is now
  27732. obtained by counting down the list of modules − how simple. Not a
  27733. mention of alchemy or the Black Arts. Good grief, if it’s that simple,
  27734. anybody will be able to do it...
  27735. 6.3
  27736. The !FontsPlus application caused some frontal headaches (actually,
  27737. these may have been caused by sudden and repeated violent contact
  27738. between the forehead and the monitor) as I could not persuade it to
  27739. recognise the ROM based fonts. Off it went to the great filestore in the
  27740. sky, and back I went to using multiple directories with original names
  27741. (!Fonts, !Fonts2, !Fonts3, !Fonts4, etc.). How quaint!
  27742. 6.3
  27743. On to some serious computing. Impression works! (Actually, I cheated. I
  27744. got the upgrade from those nice CC people at the show). And there are
  27745. more screen modes available from startup, and a *WimpMode command to
  27746. simplify my DTP !Boot sequence. On the down side, I have found printing
  27747. to be a bit of a pain − my old !PBuffer application doesn’t work anymore
  27748. and even making the PrinterBufferSize HUGE using *CONFIGURE doesn’t seem
  27749. to do anything. However, there are many more options available for
  27750. printed output. I can even get 360×360 dpi on the Panasonic and it only
  27751. takes about 30 minutes a page!
  27752. 6.3
  27753. I seem to have more space on the hard disc now. I used to have lots of
  27754. little applications that I’d collected over the years which now have
  27755. their functions in ROM, such as SetType, FileFind, StickyBD and
  27756. ShutDown. Being ruthless, and having no more need for them, I erased
  27757. them completely. Who knows, one day, I might even erase the backups of
  27758. the backups.
  27759. 6.3
  27760. So am I sorry to have upgraded? Not at all. It was just that the scale
  27761. of the change surprised me. I suppose that the change was more compli
  27762. cated because I had my system set up exactly the way I wanted it, and
  27763. had to restructure virtually the whole hard disc. It was just as
  27764. traumatic as upgrading from Arthur to RISC-OS2 had been, but I’m very
  27765. pleased with my new machine. Of course, 3.1 goes into 310, and it may
  27766. even be 100 times better!
  27767. 6.3
  27768. (Actually, this has an important moral − if Rob had followed Acorn’s
  27769. instructions and done a <delete-power-up> in the first place, he
  27770. wouldn’t have had half the problems he did. Ed.)
  27771. 6.3
  27772. And finally ...
  27773. 6.3
  27774. Send your comments, suggestions, queries, complaints, hints and tips
  27775. either to me, Hugh Eagle, at 48 Smithbarn, Horsham, Sussex  RH13 6DX.  A
  27776. 6.3
  27777.  
  27778. Hints and Tips
  27779. 6.4
  27780. •   Refilling BJ300/330 Ink Cartridges − The cartridges have a “soak up”
  27781. pad in them as well as the ink sachet so if the pad is black and full of
  27782. waste ink you can’t refill them! or can you? This is how to do it.
  27783. 6.4
  27784. Split the cartridge along the seam and lift off the top. It is only
  27785. lightly tacked together so its quite easy to prise apart.
  27786. 6.4
  27787. (The next bit is messy so use disposable gloves so you do not get ink
  27788. over your hands.)
  27789. 6.4
  27790. Lift out the ink sachet (keep it the same way up) and then the pad and
  27791. wipe clean the cartridge. Dispose of the pad in a plastic bag, trying
  27792. not to get too messy.
  27793. 6.4
  27794. I used kitchen roll for the new pad. Cut about 12 pieces to the size and
  27795. shape of the pad then place in the cartridge, now place the sachet on
  27796. top. Keep it the same way round to make sure the needle hole lines up
  27797. with the needle in the printer.
  27798. 6.4
  27799. That’s what the safety flap is for that drops down when you remove the
  27800. cartridge so you don’t jab yourself.
  27801. 6.4
  27802. Replace the top of the cartridge, securing it with just a couple of
  27803. drops of glue so it can be removed again, it is now ready to be filled.
  27804. 6.4
  27805. I took the advice of Stuart Bell (Archive 4.5 page 7) and used Quink
  27806. Permanent Black @ £1.70p for 54ml. The sachet takes 40ml, so don’t over-
  27807. fill it. Obtain a 20ml syringe and 21 gauge needle from your chemist. (A
  27808. 20ml syringe is about the best as larger ones tend to be very
  27809. expensive.)
  27810. 6.4
  27811. Carefully fill the sachet making sure the needle goes in the same hole.
  27812. If you make another hole, air can get in and cause problems.
  27813. 6.4
  27814. Don’t forget to wash out the syringe and needle afterwards.
  27815. 6.4
  27816. So, at the cost of approx £1.70p plus the syringe and a few sheets of
  27817. kitchen roll, you now have a refilled ink cartridge which would normally
  27818. cost about £10 to refill and between £15 − £20 for a new one.
  27819. 6.4
  27820. If any of you wonder what the soak up pad is for, when the printer is
  27821. switched on, ink is jettisoned through the nozzles to clean them and
  27822. this then runs down into the cartridge.
  27823. 6.4
  27824. •   D-type connector problems − In Archive 4.8 p7, there was a tip about
  27825. taking the washers from under the hexagonal pillars of the D-type
  27826. connectors. I think it is worth re-stating it for those readers who
  27827. missed it. My A310 was in a ‘not working’ state the other day − it
  27828. refused to produce any green. I checked that the two screws holding the
  27829. D-plug into the socket were tight and checked out the monitor and lead
  27830. which worked fine, but still no green. A few days later, I remembered
  27831. the tip, removed the washers and the green returned.  Les May,
  27832. Rochdale
  27833.  
  27834. Using RISC-OS 3
  27835. 6.4
  27836. Hugh Eagle
  27837. 6.4
  27838. I hope that all who have ordered RISC-OS 3 upgrades will have received
  27839. them by the time this issue is published and that those who have been
  27840. waiting to make up their minds about upgrading will have been suffi
  27841. ciently encouraged by now to go ahead. There will be considerable
  27842. advantages to all Archimedes users if we all use the same operating
  27843. system: above all programmers will be able to use the new improved
  27844. features without having to worry about backwards compatibility.
  27845. Inevitably, this column will tend to contain quite a lot of negative
  27846. material about difficulties that some people have had, but it is
  27847. important to appreciate that most upgraders have had very little real
  27848. trouble (some inconvenience, perhaps, but not insuperable problems).
  27849. There are genuine advantages in RISC-OS 3, most programs work well and I
  27850. believe that most users are pleased with it.
  27851. 6.4
  27852. The deadlines for the December and January editions of Archive have been
  27853. concertina’d close together (because of Christmas, etc) so there has
  27854. been no time for any reactions to the first RISC-OS 3 column. However,
  27855. contributions have continued to arrive in response to the original
  27856. request – several more problems, criticisms, etc but also some interest
  27857. ing hints & tips.
  27858. 6.4
  27859. Please send anything that you think may be relevant either to Archive or
  27860. to me, Hugh Eagle at 48 Smithbarn, Horsham, Sussex  RH13 6DX.
  27861. 6.4
  27862. Fitting the chips to an A310
  27863. 6.4
  27864. The upgrade to my A310 with an IFEL carrier board was quite straightfor
  27865. ward, with the help of good instructions. IFEL recommend that you remove
  27866. the motherboard, as a fairly good pressure is required to insert the
  27867. carrier board. I encountered no problems but the soldering of three
  27868. wires from the carrier board on to the legs of a chip, is not for the
  27869. faint hearted. (Memories of my Beeb days came flooding back). (Roger
  27870. Power.)
  27871. 6.4
  27872. Configuring for a SCSI hard drive
  27873. 6.4
  27874. The configure application is OK apart from the settings appertaining to
  27875. my Oak SCSI filing system. I have overcome this by a separate !Config
  27876. Obey file that I run as well as Configure and which reads as follows:
  27877. 6.4
  27878. *configure drive 4
  27879. 6.4
  27880. *configure filesystem SCSI
  27881. 6.4
  27882. *SCSI
  27883. 6.4
  27884. *configure SCSIDrive 4
  27885. 6.4
  27886. *OPT 4,2
  27887. 6.4
  27888. This is obviously only needed after a factory reset which shouldn’t be
  27889. very often. Unfortunately, at the moment it is, as further problems have
  27890. now occurred. Namely my Impression doesn’t read the Dongle all the time
  27891. and appears to require a factory reset. This is only since the arrival
  27892. of RISC-OS 3.1 and I have yet to find out whether or not the Dongle (or
  27893. maybe even RISC-OS 3.1) is at fault. Obviously I have checked all the
  27894. connections over and over again. (Roger Power.)
  27895. 6.4
  27896. (Roger, I suspect it’s more likely to be a hardware problem on the
  27897. p.c.b. after fitting the I.F.E.L. ROM upgrade in your A310. There are no
  27898. problems, that we know of, with dongles. Ed.)
  27899. 6.4
  27900. 5¼“ floppy drive
  27901. 6.4
  27902. My external 5¼“ floppy drive is too slow for my Archimedes, with the
  27903. result of the heads chattering alarmingly. I had previously got round
  27904. this problem with the command *Configure STEP 3 6. However, RISC-OS 3.1
  27905. does not appear to accept this, only STEP 3 3. Can anyone help, please?
  27906. (Roger Power.)
  27907. 6.4
  27908. LaserDirect printer driver
  27909. 6.4
  27910. (Incidentally, Computer Concepts have told me that “RISC-OS 3 compatible
  27911. printer drivers should be available around the middle of next year. This
  27912. will cover TurboDrivers, FaxPack and LaserDirect” HE)
  27913. 6.4
  27914. In RISC-OS 2, I solved the problems of using a LaserDirect printer on a
  27915. machine to which a parallel printer is also attached, by including a
  27916. simple driver in an application which resides on the iconbar and does
  27917. lots of idiosyncratic things which suit my personal use of the machine.
  27918. The driver stores data dragged to it in a buffer and outputs it to the
  27919. dot-matrix line by line on each Wimp_Poll with reason code 0. This
  27920. enables me to leave the LaserDirect on the iconbar. If I want to print
  27921. some text or Basic, the data is dragged with <shift> held down,
  27922. otherwise the data is presumed to represent an address, which is
  27923. formatted for the 9-line labels with which, by default, the printer is
  27924. loaded. This is very handy, because I can drag the address directly out
  27925. of a DeskEdit or Impression window. My beef is that my routine orig
  27926. inally tested for a connected printer, thus:
  27927. 6.4
  27928. DEFPROCChPr:*FX5,1
  27929. 6.4
  27930. VDU2,1,0,3
  27931. 6.4
  27932. SYS“OS_Byte”,152,3 TO ;f%: f%=f%AND2
  27933. 6.4
  27934. IFf%=0SYS“OS_Byte”,145,3
  27935. 6.4
  27936. *FX5,5
  27937. 6.4
  27938. ENDPROC
  27939. 6.4
  27940. Thus, if the 0 byte inserted into the printer buffer is still there, the
  27941. printer is not on and the data are output to screen via a command
  27942. window; otherwise, they go to the printer; f% being the determining
  27943. flag. Now, I can understand that it is an enhancement to RISC-OS to wait
  27944. if the printer is off, but I find it is wholly unacceptable that the
  27945. machine is locked up by so simple an event. The OS_Byte no longer works,
  27946. since presumably the machine is stuck at the end of line 3200! Now, the
  27947. RISC-OS driver is not stopped by such an event, but multitasks happily
  27948. waiting for the printer to be switched on. Clearly some routine is
  27949. available to deal with the situation; why could the release documenta
  27950. tion not give a clue?
  27951. 6.4
  27952. I have had to abandon the routine temporarily because, if I wished to
  27953. display a file on screen, the printer was incidentally tested first.
  27954. This is no longer possible, unless I validate <escape> with *FX229
  27955. before calling the routine and reset on exit; this means exiting via the
  27956. error handler, however, and is one of the more difficult parts of Wimp
  27957. programming, I find! Any suggestions? (Mick Day.)
  27958. 6.4
  27959. LaserDirect and ROM fonts
  27960. 6.4
  27961. As mentioned last month, the current version of the Computer Concepts’
  27962. LaserDirect printer drivers are not fully RISC-OS 3 compatible. Thus
  27963. they will not cope with the extra features of Draw such as rotated text
  27964. or sprites. Furthermore, they will not find all of the fonts in the ROM-
  27965. based resources filing system. In particular, the italic versions of
  27966. both Homerton and Corpus are not seen. It is necessary to have the old
  27967. copies of the Homerton and Corpus fonts installed in the disc !Fonts
  27968. directory. (Brian Cowan.)
  27969. 6.4
  27970. (I find that if I try to print these fonts from Impression, it refuses
  27971. to print but does allow me to carry on, whereas Draw locks up the
  27972. machine. If this is a printer driver problem it makes Computer Concepts’
  27973. apparent lack of interest in bringing out new drivers all the more
  27974. frustrating. If they do appear in “the middle of next year” that will be
  27975. about 20 months after the original release of RISC-OS 3! HE)
  27976. 6.4
  27977. Dot matrix printers: formfeeds
  27978. 6.4
  27979. I have yet to find a way of stopping the RISC-OS dot-matrix printer
  27980. driver from issuing a concluding formfeed when a short piece of text is
  27981. dropped on the icon and printed. I prefer to control such things myself;
  27982. any ideas? or am I, after all, an idiot? (Mick Day.)
  27983. 6.4
  27984. DFS discs: don’t try “free” space
  27985. 6.4
  27986. Put a DFS disc in drive 0 and click; the error window tells you it is an
  27987. unrecognised format. However, if you put a DFS disc in drive 0 and click
  27988. on ‘Free’ you will crash the machine with ‘File core in use’ rearing its
  27989. ugly head! Couldn’t the existing disc checking routines have been
  27990. invoked before plunging into the ‘Free’ sequence? (Mick Day.)
  27991. 6.4
  27992. Naming the RAM disc
  27993. 6.4
  27994. RISC-OS 2 used RAM:$ as the prefix on the RAMdisc filer window and
  27995. Filer_OpenDir worked with it quite happily. However, you had to find out
  27996. by trial and error what discname to use in order to get sense out of,
  27997. e.g.
  27998. 6.4
  27999. SYS “RamFS_FreeSpace”,“RamDisc0” TO room% : IFroom%>X% room%=0 : ENDPROC
  28000. 6.4
  28001. Acorn could have detailed this irritating time-waster somewhere (like
  28002. the PRM). Now, I appreciate that RAM::RamDisc0.$ is generically the
  28003. correct format to use in the Acorn file system protocols and clicking on
  28004. the icon in RISC-OS 3 opens a window with that title. For backwards
  28005. compatibility, *Filer_OpenDir RAM:$ still works; jolly good. However, if
  28006. your software issues the command and you have already opened a window,
  28007. RAM::RamDisc0.$, from the iconbar, you get a second window identical in
  28008. all save the title, RAM:$! (Mick Day.)
  28009. 6.4
  28010. Operating system version
  28011. 6.4
  28012. The PRM tells us that SYS“XOS_Byte”,0,0 prints the version string: so it
  28013. does. However, SYS“OS_Byte”,0,1 TO ,A is supposed to return the OS
  28014. version number in A but it does not seem to do so. RISC-OS 2 and RISC-OS
  28015. 3 on my machines both return 6 (the SYS number for OS_Byte)! However,
  28016. SYS“XOS_Byte”,0,0 TO A does return, in (A+4), the address of the version
  28017. string, so it can be extracted in the time-honoured manner. (Mick Day.)
  28018. 6.4
  28019. MS-DOS: file extensions and formatting
  28020. 6.4
  28021. The MultiFS utility is not required in RISC-OS 3; DOS discs and DOS
  28022. partitions on hard discs may be read directly with the new operating
  28023. system. I think that what Acorn have done is to integrate MultiFS into
  28024. the machine’s filers as an Image filing system. However, I cannot obtain
  28025. all the old facilities of MultiFS. In particular, it is not clear
  28026. whether the hierarchical method of dealing with file extensions can be
  28027. used; this was particularly useful. Also, I see that you can copy the
  28028. boot sectors from one DOS disc to another from the command line using
  28029. *CopyBoot, but I don’t know if this can be done from the desktop as an
  28030. option while formatting. Does anyone know? (Brian Cowan.)
  28031. 6.4
  28032. Compression
  28033. 6.4
  28034. CC have told me that there is a bug in version 1.10 of Compression which
  28035. can cause a corruption if a file is dragged between a CFS window and the
  28036. corresponding uncompressed filer window. If this is not done, Compres
  28037. sion should work OK. (Brian Cowan.) (See also the comment by Jochen
  28038. Konietzko in last month’s column.)
  28039. 6.4
  28040. Wish list for RISC-OS 4 (R. W. Darlington)
  28041. 6.4
  28042. •   When I use Name Disc from desktop, I want to see it display the
  28043. present disc name in the writable icon. (With my setup it does display
  28044. the name of the hard disc but not that of a floppy! HE)
  28045. 6.4
  28046. •   When I copy across a group of files from one directory to another, I
  28047. want to see the Filer check that there is sufficient disc space for the
  28048. copied files to fit before it starts to copy them. (Also, in the case of
  28049. D format discs, that the disc won’t need compacting.)
  28050. 6.4
  28051. •   I want to see it copy a group of files from one disc to another a
  28052. little more intelligently than it does at the moment. I wish to see it
  28053. write all the directory information in one go, then write all the files,
  28054. instead of continually moving the heads across the surface of the disc
  28055. for each little file it writes to disc, which takes it an age!
  28056. 6.4
  28057. •   When I Set Type from Desktop, I want to see a list of possible
  28058. options, along with their icons, like !SetType by Emmet Spier.
  28059. 6.4
  28060. •   In !Edit, I want to see an option to ‘Select All’.
  28061. 6.4
  28062. •   In !SciCalc, which uses BASIC64, I want to see it display figures to
  28063. the full precision of the Basic, 18 significant figures or so and not
  28064. the 10 displayed at present. Also, I want to see it display exponents
  28065. like this “×1018” and NOT “E18”. I also want to see an option to select
  28066. engineering or scientific notation.
  28067. 6.4
  28068. •   When deleting columns at the far right hand edge of a sprite, it
  28069. deletes too many columns.
  28070. 6.4
  28071. •   If I save a sprite (using !Paint) of just one pixel in height (any
  28072. length?) and colour it a different colour than desktop grey, then when I
  28073. use this sprite to create a backdrop using the !Pinboard, not only does
  28074. it take an incredible amount of time to draw the backdrop, it also uses
  28075. the wrong colour. It comes out in desktop grey! Is this a problem with
  28076. !Paint or !Pinboard? (Or is the user making unreasonable demands? HE)
  28077. 6.4
  28078. •   In the Set Copy Options, I want to see an option whereby it can be
  28079. made to ask for confirmation only if a deletion is being made, rather
  28080. than just an access request or a copy command.
  28081. 6.4
  28082. •   Now that some fonts are inside RISC-OS 3 itself, I want to see a
  28083. configure option to set the desktop default font to other than the
  28084. system font.
  28085. 6.4
  28086. •   I also want to see a new MODE equivalent to MODE 31 in every way
  28087. except that the pixel units are set such that all icons and everything
  28088. on screen appears half the size. Or, do the same for MODEs 18, 19, 20,
  28089. and 21.
  28090. 6.4
  28091. •   When I insert a disc with a foreign format, e.g. an IBM formatted
  28092. disc, into the drives, I want to see a little more obviously that it is
  28093. a foreign format. Why not have the window header in a different colour,
  28094. e.g. red! Or do it some other way if you must, but make it immediately
  28095. obvious that it is not a native format disc.
  28096. 6.4
  28097. •   When a window now goes off screen and the bottom right-hand ‘size’
  28098. control is grabbed, the window increases in size upwards when it should
  28099. not. (Isn’t this one of the intended improvements in RISC-OS 3? HE)
  28100. 6.4
  28101. Pinboard backdrop sprites
  28102. 6.4
  28103. R. W. Darlington has also sent in a collection of 74 sprites suitable
  28104. for tiling the backdrop, a voice module (which sounds to me as if it
  28105. might have been generated not a billion light years from the Sirius
  28106. Cybernetics Corporation) and some suggested modifications to the !Boot
  28107. file which will sound the voice module and display a different backdrop
  28108. each time the computer is re-booted.
  28109. 6.4
  28110. The modifications to the !Boot file read as follows:
  28111. 6.4
  28112. RMEnsure PinVoice 0 RMLoad PinVoice
  28113. 6.4
  28114. CHANNELVOICE 1 10
  28115. 6.4
  28116. SOUND 1 &FFF1 60 160
  28117. 6.4
  28118. WimpMode 31 :REM to suite my sprites
  28119. 6.4
  28120. Run ADFS::HD4.$.PinSp.RenSprites
  28121. 6.4
  28122. Pinboard
  28123. 6.4
  28124. Backdrop -T ADFS::HD4.$.PinSp .Sprit01
  28125. 6.4
  28126. This assumes that the PinSp directory contains the backdrop sprites and
  28127. an Obey file called RenSprites which simply cycles the sprite names and
  28128. reads as follows:
  28129. 6.4
  28130. Rename ADFS::HD4.$.PinSp.Sprit01 ADFS::HD4.$.PinSp.Sprit00
  28131. 6.4
  28132. Rename ADFS::HD4.$.PinSp.Sprit02 ADFS::HD4.$.PinSp.Sprit01
  28133. 6.4
  28134. ......
  28135. 6.4
  28136. Rename ADFS::HD4.$.PinSp.Sprit00 ADFS::HD4.$.PinSp.Sprit74
  28137. 6.4
  28138. Screen blanker configuration
  28139. 6.4
  28140. Does anyone know which *configuration command sets the blank out time,
  28141. or where this appears in the *Status data. I can set it using Acorns
  28142. !Configure program in the Apps directory, but cannot find it elsewhere
  28143. for use by a star command. (Roger Darlington.)
  28144. 6.4
  28145. *Filer_Run syntax
  28146. 6.4
  28147. My tip last month about using *Filer_Run with a variable application
  28148. name was unnecessarily convoluted. Although *Filer_Run <App$Dir> doesn’t
  28149. work, *Filer_Run <App$Dir>.!Run does.
  28150. 6.4
  28151. Fitting RISC-OS 3.1 to Computerware/Avie/Atomwide RAM upgrades
  28152. 6.4
  28153. The new RISC-OS ROMs are easily fitted into the four sockets provided on
  28154. the main RAM board. The ROMs should be fitted as described in the
  28155. instructions supplied with the RISC-OS upgrade.
  28156. 6.4
  28157. Locate the two links on the RAM board and swap the jumper to position B
  28158. for both.
  28159. 6.4
  28160. Locate LK12 on the main PCB, this is just under the RAM PCB where the
  28161. cable enters from the left. There should be two links placed in the
  28162. east-west postion. Remove these links and replace them in the north-
  28163. south position.
  28164. 6.4
  28165. LK12 is not always fitted and exists as a pair of PCB tracks on the
  28166. topside of the main PCB. These can be cut using a small sharp knife. The
  28167. new links can then be made on the underside of the PCB using tinned
  28168. copper wire and a soldering iron − as shown below.
  28169. 6.4
  28170. A310 Issue 1 PCB’s do not have LK12 fitted at all and require more
  28171. difficult modification. Please contact Avie for assistance.
  28172. 6.4
  28173. The fitting of RISC-OS 3 will be performed by Avie for £6.50 + VAT −
  28174. this charge is simply to cover return carriage.  A
  28175. 6.4
  28176. •   ABC Compiler − I’ve followed the discussions in Archive about the
  28177. relative merits of the RiscBasic and ABC compilers with interest
  28178. (Archive 6.1 p49). I don’t feel that there is much weight to the
  28179. argument that ABC is compiling a language different from Basic V. The
  28180. differences are quite small. The evening I received the ABC package, I
  28181. got a program of over a thousand lines running with the compiler in
  28182. about an hour which included writing some code to initialise several
  28183. arrays and removing some redundant code. When I write programs under the
  28184. Basic V interpreter, I just take the differences into account.
  28185. 6.4
  28186. My major grumble is that even when I bought the ABC package a year ago,
  28187. it had a minor bug which shows itself sometimes when the object code
  28188. icon is dragged to a directory − it requires the machine to be reini
  28189. tialised. An upgrade to the latest version, which presumably will have
  28190. corrected this bug, will cost me £40, which I think is a bit steep if
  28191. it’s only the bug fix that is any help to me.  Les May, Rochdale
  28192. 6.4
  28193. •   EasiWord 2 up(?)grade − I did have version 1.07 of Minerva’s EasiWord
  28194. and, after seeing the adverts for the WYSIWYG version, EasiWord2, I
  28195. decided to go for the upgrade.
  28196. 6.4
  28197. Now, I do not know anything about 1st Word Plus, so the fact that
  28198. EasiWord2 was similar conveyed nothing to me. However, when I tried this
  28199. new version, I was niggled to find that I couldn’t print without a RISC-
  28200. OS printer driver being installed.
  28201. 6.4
  28202. What was much worse was the fact that I could no longer send control
  28203. codes to my printer! Horror of horrors − I had lost the ability to print
  28204. in double height and in a choice of seven colours on my old Epson
  28205. LQ2500+. Let readers be warned!
  28206. 6.4
  28207. I wrote to Minerva and expressed my dismay about their new package. They
  28208. very kindly invited me to return version 2 for a refund or part
  28209. exchange. I took up their offer and they even gave me a new package of
  28210. their old EasiWord 1.07. Well done, Minerva!
  28211. 6.4
  28212. So, before you upgrade, be sure that it actually is an UPgrade for your
  28213. purposes.  Keith Lowe, Pickering
  28214. 6.4
  28215. •   Scheme − If Sue Lawley asks me which book I want to take to a desert
  28216. island, without hesitation I will have to say ‘Structure and Interpreta
  28217. tion of Computer Programs’ by Abelson and Sussman. I reckon that after a
  28218. few years of studying it without any distractions, I would know how to
  28219. set about programming a computer. The language used by these authors is
  28220. Scheme, a stripped down, elegant and refined version of Lisp.
  28221. 6.4
  28222. If you think Lisp is just an acronym for ‘Lots of Irritating Single
  28223. Parentheses’, think again. With even a simple parentheses-matching text
  28224. editor as supplied with EdScheme, that bogey disappears and you quickly
  28225. come to realise that the apparently strange syntax of Lisp-like
  28226. languages such as Scheme is in fact a very consistent and clear way of
  28227. expressing a computer program. Indeed, just as we in Britain are used to
  28228. seeing a Pascal-like pseudo-code used to express a fragment of code, US
  28229. books aimed at the academic community often use Lisp for the same
  28230. purpose.
  28231. 6.4
  28232. I had read about the first third of the Abelson book before taking the
  28233. plunge and buying EdScheme. What arrived was the Scheme optimising
  28234. incremental compiler and associated editor on a single disc, a thinnish,
  28235. 100 pages plus, User Guide and Reference Manual, and a thick, 300 pages
  28236. plus, Schemer’s Guide. This package is, in fact, a complete programming
  28237. course at a total cost of £60 plus p&p.
  28238. 6.4
  28239. The guide is aimed rather firmly at the late secondary school market and
  28240. starts with a deceptively simple approach to programming by asking the
  28241. programmer to construct pencil and paper machines capable of performing
  28242. given tasks. Even when programming has been introduced, the guide
  28243. continues to use the ‘machine’ diagrams alongside the Scheme code.
  28244. 6.4
  28245. This approach has much to commend it. We are familiar with the idea of a
  28246. machine which carries out some operation on the raw materials fed into
  28247. it. Cans of beans are constructed from a supply of beans and empty cans.
  28248. The filled cans are transported as a package but, to make use of them,
  28249. we need another machine, a can opener, to open the package and get at
  28250. the contents. Much of Scheme programming is concerned with building the
  28251. machines to construct packages of data, machines to check their contents
  28252. and machines to open up the packages and make use of the contents.
  28253. 6.4
  28254. One quickly comes to realise that within those intimidating parentheses
  28255. is the name of a machine which carries out some operation and the names
  28256. of items upon which it operates. That applies to arithmetic operations
  28257. too, so the label for the operation comes before the operands, so called
  28258. Polish or pre-fix notation.
  28259. 6.4
  28260. By chapter 3, you are being asked to write an interpreter to add
  28261. fractions (try that in Basic!) and have been introduced to the concepts
  28262. of data abstraction and recursion. On the way, you have visited some
  28263. slightly eccentric ways of representing numbers in Lisp which, though
  28264. really of historical interest only, do force you to sharpen up your
  28265. programming skills. Gradually, a mental tool box is built up containing
  28266. procedures for selecting, removing, counting, substituting and reversing
  28267. elements in lists. The inner workings of the interpreter, ‘The Scheme
  28268. Machine’, are explained in chapter 5.
  28269. 6.4
  28270. The machine analogy is explored further in chapter 6 and the problems of
  28271. handling infinitely large objects in chapter 7. As a finale, a game is
  28272. developed in the last chapter which embraces topics like artificial
  28273. intelligence and object-oriented programming.
  28274. 6.4
  28275. Scheme seems to me to be one of the best kept secrets of the computing
  28276. world. This implementation is inexpensive and, though not multitasking,
  28277. can be entered from the desktop and cleanly exits back to it. It is
  28278. hoped that a RISC-OS compliant version will be released during 1993
  28279. though the cost will be slightly higher. This will enable Scheme to run
  28280. at the same time as other applications and allow code to be dragged into
  28281. a Scheme window and compiled. At present, there do not seem to be any
  28282. plans for a version which enables the user to create, close or resize
  28283. windows from Scheme, though the Macintosh version allows this to be
  28284. done.
  28285. 6.4
  28286. I have learned a lot from my experiences with Scheme. Even when
  28287. programming in Basic, it has forced me to ask questions like, ‘If I
  28288. store data in this way, how much of the code which accesses this data
  28289. will I have to rewrite if I decide I want to store my data in a
  28290. different way?’ My appreciation of the virtues of a highly consistent
  28291. syntax, with few exceptions, has made me more critical of other
  28292. languages to which I have access. It has also made me realise just how
  28293. much code I have to write which has nothing to do with expressing how I
  28294. want the data to be operated on (my model) but is necessary just to tell
  28295. the machine how to do it. I think I’m a better programmer for having
  28296. taken the time to study Scheme.
  28297. 6.4
  28298. It has also left me with a profound sense of despair. When I was
  28299. involved in education, I consoled myself with the notion that, for all
  28300. its faults, the A level system produced students who were much better
  28301. educated than a High School student in the USA, where the EdScheme
  28302. package has its origins. Yet Scheme seems to have made a negligible
  28303. impact in this country, probably because those who control education
  28304. believe that so long as we can produce GKOs (pronounced Geckos) −
  28305. Glorified Keyboard Operators − everything will be all right. With that
  28306. in mind, the decision has been taken to ignore the discipline of
  28307. programming and concentrate on IT − whatever that is. I think we are
  28308. making a big mistake.
  28309. 6.4
  28310. EDScheme is available from Lambda Publications at a cost of £60 plus
  28311. £2.50 p&p. A 300 page copyable Resources Pack and a Teacher’s Guide is
  28312. also available at additional cost.
  28313. 6.4
  28314.  Les May, Rochdale.  A
  28315. 6.4
  28316.   
  28317. Hints and Tips
  28318. 6.05
  28319. •   A4 pointer loss − Using Impression on an A4, it is very easy to lose
  28320. the text pointer. If the pointer is somewhere over the text, it takes
  28321. the form of a caret and is very difficult to see. The simple solution is
  28322. to click <adjust>. This marks a block of text and your pointer is at one
  28323. or other end of the block! Ed.
  28324. 6.05
  28325. •   Ace printer drivers − Many people have asked about the differences
  28326. between Risc Developments’ printer drivers and the Ace Computing drivers
  28327. (including the Pro-Drivers.) In practice, the standard Ace drivers (£17)
  28328. and Risc Developments’ drivers (£23) are the same. However, the Pro-
  28329. Drivers (£44) are somewhat enhanced: they support full background
  28330. printing, true 24-bit colour, half-toning, dithering and colour
  28331. separations. Ace Computing have also recently upgraded their DJ500C
  28332. driver to include facilities for the DJ550C. Simon Moy, Archive.
  28333. 6.05
  28334. •   Background printing with RISC-OS printer drivers − Yes it is possible!
  28335. RISC-OS printer drivers are capable of printing in the background far
  28336. better than third party software due to the fact that the ROM printing
  28337. routines are designed to multitask. However, this is not documented and
  28338. requires a particular way of printing. Set your printer driver to print
  28339. to a file (choose Connection from the Printer Control menu, select File
  28340. and enter a pathname to a temporary file). Print the file in question by
  28341. the normal method for the application in question − this bit doesn’t
  28342. multitask! When it has finished, reset the driver to print to the
  28343. parallel (or serial) port. Find the temporary printout file and drag it
  28344. on to the printer icon on the iconbar. The printer will begin printing
  28345. and you will have full control of the machine. If you are using a RAM
  28346. disc or a hard disc, you shouldn’t notice any slowing down at all. Simon
  28347. Moy, Archive.
  28348. 6.05
  28349. •   Dating − I can never remember what the time is and so, in common with
  28350. a lot of others, I used to have the date and time on the iconbar. This
  28351. was not completely satisfactory as it was frequently obscured by
  28352. windows. Browsing in the User Guide, I discovered that you could alter
  28353. the format of the command line prompt and have the date and or time
  28354. displayed before the *. You can do this with:
  28355. 6.05
  28356. SetMacro CLI$Prompt <Sys$Time>, <Sys$Date> *
  28357. 6.05
  28358. This went in my boot file. Now whenever I want the date or time all I do
  28359. is, <f12>, read the date and time and press <return>.  Edward Naish,
  28360. Gwynedd.
  28361. 6.05
  28362. (On RISC-OS 3, all you do is press <shift-f12> to bring the iconbar
  28363. forwards and then <shift-f12> to put it back again. Ed.)
  28364. 6.05
  28365. •   Draw to sprite conversion − In answer to Roger Darlington’s plea in
  28366. Archive 6.3, several people gave us the “obvious” way of converting
  28367. drawfiles to sprites − you display the drawfile on screen and use the
  28368. screen grab facility within Paint to create a sprite. (This emphasises
  28369. again the need for a ‘This is Obvious But...’ column, as mentioned in
  28370. the Help!!! Column this month. None of the ‘experts’ at N.C.S. thought
  28371. of it. Ed.)
  28372. 6.05
  28373. One other solution was mentioned... Drawfile to sprite conversion can be
  28374. done with the program Revxtra which is supplied with the Revelation
  28375. package. However, this is a copyright program and I don’t know of any PD
  28376. equivalent.  Ted Lacey, Southampton.
  28377. 6.05
  28378. To add to that... If you have Revelation ImagePro, you can just drop
  28379. drawfiles onto a Revelation picture and save it out again as a sprite −
  28380. no need for a separate program.  Gabriel Swords, Norwich.
  28381. 6.05
  28382. •   Easiword − The printed effects (bold, italics, etc) only start working
  28383. if you go into !Printers configuration window and, in the Options−Text
  28384. Quality, select NLQ rather than No Highlights which is the default. 
  28385. Steve Hutchinson, Gloucester.
  28386. 6.05
  28387. • Filename dragging − If you have version 1.21 of Edit, you can shift-
  28388. drag any object into an edit window and the pathname of the object
  28389. appears at the cursor position. This is just the job for constructing
  28390. command files. Avoid all those typing errors!
  28391. 6.05
  28392. I read in another magazine that this facility is only available in OS3.
  28393. This is not the case, although it does not work with version 1 of Edit. 
  28394. Edward Naish, Gwynedd.
  28395. 6.05
  28396. •   Fun School − All of the Fun School series (3 and 4) have now been
  28397. upgraded to work with RISC-OS 3.10 although some tweaks are still
  28398. necessary. For the Fun School 3 range, it is necessary to start in mode
  28399. 15 before running the programs. In the Fun School 4 range, you will need
  28400. to RMKill any VIDC enhancer modules that are running as these cause the
  28401. music and graphics to work too fast. Simon Moy.
  28402. 6.05
  28403. •   Inserting RISC-OS (or any other) chips − With the recent introduction
  28404. of RISC-OS 3, many Archimedes computers are being returned to dealers
  28405. with the pins of the ROM chips damaged. Here is how to avoid that!
  28406. Usually, ROM chips are delivered with the pins looking like this...
  28407. 6.05
  28408.  
  28409. 6.05
  28410. They will not go into the computer’s ROM sockets with the pins splayed
  28411. out like this.
  28412. 6.05
  28413. Before handling the ROM chips, make sure that you are not carrying a
  28414. static charge. This is easily accomplished by touching an earthed metal
  28415. object. You will need a flat area to work on − a formica-topped table is
  28416. ideal. Grasp each end of the ROM chip with finger and thumb of both
  28417. hands, so that the sharp ends of the ROM pins are facing you horizon
  28418. tally. Place the bottom row of pins onto the formica table top and press
  28419. down gently but firmly and move the body of the ROM slightly towards
  28420. you. Repeat this operation until the pins are exactly at right angles to
  28421. the chip body. Turn the ROM over and repeat the above exercise. You
  28422. should now have a ROM with the pin layout like this...
  28423. 6.05
  28424.  
  28425. 6.05
  28426. With the chip just above its socket and the chip notch orientated with
  28427. the diagram supplied with your computer, insert one side of the chip
  28428. pins slightly into the corresponding side of the socket. Once you are
  28429. sure that all pins on that side do align correctly then lower the other
  28430. row of pins into the other side of the socket. Again make sure that all
  28431. the pins are aligned and then press the chip completely home.
  28432. 6.05
  28433. If you have been unfortunate enough to have broken a pin off of a ROM
  28434. chip, there is a solution providing that a small amount of pin is left
  28435. on the chip. You will need a “turned pin”, wire-wrap header socket with
  28436. the same number of pins as the damaged ROM. Before inserting the damaged
  28437. chip into this socket, cut down each pin of the header socket to about
  28438. 4mm length. Insert the damaged ROM into this socket, and with a very
  28439. fine-tipped soldering iron solder a jumper wire from the damaged pin
  28440. directly to the empty socket on the header. Once this has been achieved
  28441. do not ever remove the ROM from this socket. The completed assembly may
  28442. be mounted with care into the original ROM socket. I have repaired
  28443. several ROMs by this method.  Mike King, Guernsey.
  28444. 6.05
  28445. •   JPEG − Under RISC-OS 3, JPEG only works providing the hourglass is
  28446. switched off. This can be carried out by inserting the SWI call SYS
  28447. "Hourglass_Off" at the appropriate place.  Marc Evans.
  28448. 6.05
  28449. •   Paper for inkjets − Daler Superline paper produces excellent results
  28450. on my Canon BJ10ex − I bought it a long time ago, so I hope it’s still
  28451. available.  S Freeman, Middlewich.
  28452. 6.05
  28453. •   Printer drivers − RISC-OS 3 printer drivers assume that there is
  28454. enough “scrap” space on a disc to store any temporary files during a
  28455. printing operation. In practice, a hard disc is assumed. If you have a
  28456. system without a hard disc, then !Scrap can be either on a floppy disc
  28457. or a RAM disc. If there is not enough space for the temporary printout
  28458. file, !Printers will crash with no warning. To avoid this, keep !System
  28459. and !Scrap on a separate disc on their own. Simon Moy, Archive.
  28460. 6.05
  28461. •   Standard crest in Impression letters − In Archive 6.3 p28, Brian Cowan
  28462. asks how he can save floppy disc space with his Impression letters where
  28463. he has a college crest, the drawfile of which  takes up 10Kb of memory
  28464. per letter − much more than the text − and he fills a floppy disc with
  28465. such multiple copies of the crest.
  28466. 6.05
  28467. Surely the answer is to have an empty frame in the standard letter file
  28468. into which he drags the drawfile of the crest. All he has to do is to
  28469. remember to drag the drawfile whenever he starts a new letter and drop
  28470. into the frame a simple dummy drawfile − a single square or circle will
  28471. do − that will occupy far less space, before saving to disc. If he needs
  28472. to re-load and re-print the document, all he has to do is drop a copy of
  28473. the crest in again − surely not a fag. The crest and dummy drawfiles can
  28474. be held on the pinboard.  Steve Kirkby, Sutton. (Well, it was his idea
  28475. modified by Ed.)  A
  28476. 6.05
  28477.  
  28478. 6.05
  28479. Using RISC-OS 3
  28480. 6.05
  28481. Hugh Eagle
  28482. 6.05
  28483. I’ve received such a flood of letters in response to my first column
  28484. that I probably won’t have time to refer to them all. I apologise in
  28485. advance if I don’t use your contribution; I am very grateful for them
  28486. all and will try to use them next month. In the meantime, please keep
  28487. the hints, tips, comments, suggestions, etc flowing.
  28488. 6.05
  28489. A number of the problems mentioned only seem to affect a few users and
  28490. may result from unusual combinations of circumstances which could be
  28491. difficult to diagnose. If you think you might be able to help by talking
  28492. directly to the people affected, please let me know and I will put you
  28493. in contact.
  28494. 6.05
  28495. Fitting the Upgrade
  28496. 6.05
  28497. Several people have commented favourably on the service they have
  28498. received from dealers. IFEL has been mentioned a number of times. Nik
  28499. Kelly was specially impressed by Simtec’s facilities.
  28500. 6.05
  28501. Götz Kohlberg received his upgrade surprisingly quickly but then had to
  28502. wait several weeks for the fitting instructions for his carrier board.
  28503. When the instructions arrived, he found the IFEL carrier board very easy
  28504. to fit, taking only about 20 minutes. He didn’t have to remove the
  28505. backplane or take out the main board.
  28506. 6.05
  28507. Programs That Do Work
  28508. 6.05
  28509. Microdrive – A number of people have noticed that, while the new version
  28510. requires you to keep the program disc in the floppy drive while you play
  28511. the game, the new courses work with the original program which will run
  28512. properly from a hard disc.
  28513. 6.05
  28514. Others – various people have reported that the following work without
  28515. any problems:
  28516. 6.05
  28517. FontFX 5.05 (latest upgrade, free from Data Store, recognises the ROM
  28518. fonts)
  28519. 6.05
  28520. Flexifile 1.04
  28521. 6.05
  28522. Eureka (has someone found it?)
  28523. 6.05
  28524. Home Accounts
  28525. 6.05
  28526. SigmaSheet
  28527. 6.05
  28528. Arcendium (R. E. Leo says he finds it works, contrary to the report from
  28529. Mike Williams in December)
  28530. 6.05
  28531. ArcScan III
  28532. 6.05
  28533. DiscTree 2.30
  28534. 6.05
  28535. Art Nouveau (Tim Nicholson says he uses it a lot, and doesn’t need the
  28536. fix I gave two months ago.)
  28537. 6.05
  28538. Investigator 2 works on an A310, but not an A5000.
  28539. 6.05
  28540. Elite (although Raymond Wright says that it did once seize up after
  28541. about an hour’s play, which had never happened in RISC­OS 2.)
  28542. 6.05
  28543. Arc-Comm
  28544. 6.05
  28545. Fortran 77 (Acorn)
  28546. 6.05
  28547. Acorn DTP
  28548. 6.05
  28549. Speech!
  28550. 6.05
  28551. Frances Obee is keen to know whether her most used programs will work:
  28552. Pendown Plus, Atelier, Prime Art, Chocks Away and Extra Missions, Elite,
  28553. Saloon Cars, and Man Utd. Europe. (I can vouch for two on her list: Draw
  28554. Plus v2.12 and Lemmings.)
  28555. 6.05
  28556. Richard Burnell says that a small modification will make version 1.00 of
  28557. !Define (the Watford VIDC screen mode definer) work: add to line 17760
  28558. of !RunImage ELSE tk%=FALSE so that it reads:
  28559. 6.05
  28560. IF INKEY(−256)=162 THEN tk%=TRUE ELSE tk%=FALSE
  28561. 6.05
  28562. Rob Brown says that the original version of Quazer supplied by the
  28563. author Julian Rockey, not Impact Software or Fourth Dimension, needs the
  28564. screen memory to be set to exactly 160Kb.
  28565. 6.05
  28566. He also says that Corruption and Jinxter will only work with the very
  28567. old version of the Shared C Library supplied with the games. You need to
  28568. RMKill the RISC­OS 3 version and RMLoad the old version from disc. (He
  28569. recommends that you quit any application that uses the Shared C Library
  28570. first!)
  28571. 6.05
  28572. He adds that you can run Terramex by first ensuring that “Free” memory
  28573. is at least 400Kb then using the command *Run Terracode.
  28574. 6.05
  28575. Programs that May Need to be Upgraded
  28576. 6.05
  28577. From the hints I have received, the general message seems to be that if
  28578. a program doesn’t work (and this is more likely to apply to older
  28579. programs, especially games) it is worth contacting the supplier or the
  28580. manufacturer because they can often supply upgrades (sometimes for quite
  28581. nominal sums).
  28582. 6.05
  28583. Among those that have been mentioned are:
  28584. 6.05
  28585. Arcade 3 games compilation from Clares
  28586. 6.05
  28587. Artisan, Artisan 2 and ProArtisan
  28588. 6.05
  28589. Interdictor
  28590. 6.05
  28591. a number of Fourth Dimension games (but Boogie Buggy is apparently
  28592. incompatible with an A5000, according to Rob Brown.)
  28593. 6.05
  28594. Droom
  28595. 6.05
  28596. Avon/Murdac (adventure compilation from Topologika)
  28597. 6.05
  28598. ChartDraw, GraphDraw and KeyStrip (excellent PD applications from Chris
  28599. Johnson).
  28600. 6.05
  28601. Fonts
  28602. 6.05
  28603. Colin Singleton points out that, although Electronic Font Foundry are
  28604. selling (more expensive) “RISC­OS 3” fonts, the old ones work perfectly
  28605. well. The only difference is that the new ones have automatic kerning
  28606. information built in (for the use of programs that know how to use it).
  28607. 6.05
  28608. Alan Gentle warns that the way FontMax settings are defined has changed.
  28609. They used, in RISC­OS 2 to be quoted in pixels, but in RISC­OS 3 are now
  28610. quoted in points. The maximum point size for anti-aliasing seems to
  28611. refer to the apparent point size on the screen. Thus to make sure that,
  28612. say, 15 point text displayed at 130% is anti-aliased he has to set the
  28613. appropriate FontMax to 15×1.3, i.e. at least 20.
  28614. 6.05
  28615. David Shepherdson reports that DrawPlus version 2.00 cannot convert
  28616. Trinity, Homerton or Corpus to paths and suggests using Draw to do the
  28617. conversion and “saving” the result into DrawPlus. (The same seems to be
  28618. true of version 2.12. A possible alternative would be to ignore the ROM
  28619. fonts and load those you want into a disc !Fonts directory.)
  28620. 6.05
  28621. Marc Evans recommends, contrary to Acorn’s instructions, keeping the
  28622. !Fonts directory in a sub-directory, not the root, to save memory and
  28623. time if you are not using the disc fonts. (I would suggest you only do
  28624. this if you are sufficiently experienced to understand the
  28625. implications.)
  28626. 6.05
  28627. John Winter says that Impression (2.17) and LaserDirect (2.05) work as
  28628. well – if not faster – with FontSize set to 128Kb.
  28629. 6.05
  28630. (For more on fonts and LaserDirect see the section headed LaserDirect
  28631. further on in this column!)
  28632. 6.05
  28633. Filing Systems
  28634. 6.05
  28635. IDE drives
  28636. 6.05
  28637. R. D. Attwood noticed that the hard disc icon on his iconbar had “IDE 4”
  28638. underneath it rather than “IDEDisc4”. On trying to access the disc, he
  28639. got an error box with “Bad free space map”. Watford Electronics have
  28640. advised him that he needs another chip (cost £16) for the hard disc
  28641. podule.
  28642. 6.05
  28643. D. T. Software recommended alternative courses of action for one
  28644. customer whose IDEFS wouldn’t work with RISC­OS 3.10: either (a)
  28645. reformat the hard disc using the formatter supplied with the system or
  28646. (b) fit a replacement EPROM incorporating a work-around for a “marginal
  28647. infelicity in the way RISC­OS 3 mounts discs.”
  28648. 6.05
  28649. SCSI drives
  28650. 6.05
  28651. C. Purvis has an A3000 with an external 5¼" floppy drive and an Oak SCSI
  28652. external interface (fairly old). When he turns his computer on, the SCSI
  28653. icon is to the right of the RAM disc’s and when clicked on gives a “Bad
  28654. drive” error. He then runs the following file from a floppy:
  28655. 6.05
  28656. *Mount 4
  28657. 6.05
  28658. *RMLoad $.!System.Modules. SCSIFiler
  28659. 6.05
  28660. *RMReinit SCSI
  28661. 6.05
  28662. *RMREINIT SCSIFiler
  28663. 6.05
  28664. *RMReinit SCSIFS
  28665. 6.05
  28666. *ADFS
  28667. 6.05
  28668. after which the SCSI icon disappears from the iconbar. If he then
  28669. presses <shift-break> to reset the computer, SCSIDisc4 appears at the
  28670. left end of the iconbar and all is well.
  28671. 6.05
  28672. It has been suggested to me that he needs a new ROM on his SCSI
  28673. interface. Can anyone confirm this?
  28674. 6.05
  28675. (One thing we have noticed with the Oak SCSI interfaces is that after a
  28676. <delete-power-up>, the SCSIdrive configuration is set to 0 and not 4.
  28677. What then happens is that the first time you click the hard drive icon,
  28678. it says “Bad drive” but then if you click again, it works OK. The
  28679. solution is simple: press <f12> and type Configure SCSIDrive 4 <return>
  28680. and then do a <ctrl-break>. I think you will find that all is well after
  28681. that. Ed.)
  28682. 6.05
  28683. Mike Williams says the Shutdown routine won’t complete unless he has all
  28684. his various SCSI drives mounted, so he has to put a disc into his
  28685. removable disc drive and spin it up just so that the system can dismount
  28686. it for him! He therefore ignores Shutdown, but asks whether there is a
  28687. recommended way of safely shutting down a system such as his?
  28688. 6.05
  28689. Mike has also found that if, after switching off, he changes his mind
  28690. and switches on again his computer gets stuck half-way through its
  28691. initialisation sequence. Is this a RISC­OS 3 feature, a hardware fault,
  28692. or just because he didn’t shut down nicely?
  28693. 6.05
  28694. Using “Free space” viewer on SCSI drives
  28695. 6.05
  28696. (This hint from David Lenthall was originally published in Archive 5.5.)
  28697. 6.05
  28698. If choosing the “Free” option from a SCSI drive icon gives an old RISC-
  28699. OS 2 style textual report and you would prefer to get the new RISC-OS 3
  28700. window with sliders, include the following line in your boot file:
  28701. 6.05
  28702. Set Alias$Free ShowFree -FS scsi %0
  28703. 6.05
  28704. Séan Kelly’s alternative solution (which works beautifully with his A440
  28705. and Oak SCSI interface, driver version 1.16) is to copy the SCSIFiler
  28706. module from Applications Disc 1 into his !System.Modules directory and
  28707. to add the following line to his !Boot file:
  28708. 6.05
  28709. RMLoad SCSI::SCSIDisc4.$.!System .Modules.SCSIFiler
  28710. 6.05
  28711. ArcDFS / DFSReader
  28712. 6.05
  28713. In response to S. J. Furnell’s problem with ArcDFS mentioned in Archive
  28714. 6.3 p14, Keith Raven recommends !DFSReader on Archive Shareware 31. This
  28715. needs one slight adjustment: in line 210 of the !RunImage Basic program,
  28716. there is a SYS call that is expected to return 0, 1 or 2 to indicate
  28717. whether large or small icons or full directory information are selected
  28718. for directory windows. Under RISC­OS 3 this actually returns 64, 65 or
  28719. 66. If the next three lines of the program are adjusted to reflect this,
  28720. it seems to run perfectly. (Richard Burnell suggests adding a new line
  28721. instead:
  28722. 6.05
  28723. 215 a=a MOD 64
  28724. 6.05
  28725. to achieve the same effect.) (Keith wonders how many similar minor
  28726. changes between RISC­OS 2 and RISC­OS 3 will come to light.)
  28727. 6.05
  28728. The Wakefield Acorn Computer Group writes:
  28729. 6.05
  28730. Regarding S. J. Furnell’s problem with ArcDFS there is some good news
  28731. here. (These errors are liable to occur when you click on the drive icon
  28732. to display a directory window.) The most common error is ‘Bad drive’ and
  28733. you can overcome this simply by Naming the disc with a blank name, i.e.
  28734. press <space> and then <return>. The ArcDFS Name option is selected via
  28735. the ‘Misc’ menu option, followed by ‘Name disc’.
  28736. 6.05
  28737. This doesn’t cure the other (less common) error which is ‘Buffer
  28738. overflow’. In that case, the only option seems to be to use the command
  28739. line, i.e, press <f12> to get a ‘*’ prompt or bring up a task window
  28740. with <ctrl-f12> and type DIR DFS: (not *DISC as you might expect),
  28741. followed by DIR :1 to select drive 1, (if required), then CAT for a
  28742. directory listing, etc. You can then use the manual *COPY command to
  28743. move files around, e.g.
  28744. 6.05
  28745. Copy DFS::1.$.Index ADFS::HardDisc4.$.Junk.MyIndex
  28746. 6.05
  28747. copies a file called $.Index on the DFS drive 1 into the $.Junk
  28748. directory of an ADFS hard disc, renaming it MyIndex in the process.
  28749. 6.05
  28750. You can just as easily copy onto SCSI, IDE and RAM discs of course. Note
  28751. that you should use *COPY and not *CopyDFS. The very good news is that
  28752. operations such as Format, Backup and Verify work fine, as they don’t
  28753. need to display a directory!
  28754. 6.05
  28755. 5¼" discs
  28756. 6.05
  28757. Peter Prewett has been horrified to find that since upgrading to RISC-
  28758. OS 3 he can no longer read any of his 5¼" discs (which he uses for
  28759. backing up his hard disc) via his Watford interface. He has tried
  28760. resetting the step rate to 6 without success. Luckily, he can still read
  28761. discs from his BBC via a DFS to ADFS file transfer.
  28762. 6.05
  28763. Gordon Lindsay-Jones also reports problems with his Watford buffer which
  28764. used to work well under RISC­OS 2. Can anyone help? (Have you asked
  28765. Watford?)
  28766. 6.05
  28767. Richard Wells initially found that the Beebug DFS Reader refused to work
  28768. under RISC­OS 3, but he has now found that if he runs the Commands
  28769. utility from the Support disc first then it will run.
  28770. 6.05
  28771. Richard also says he configures his 40-track 5¼" drive (drive 1) with
  28772. 6.05
  28773. *Configure Step 12 1
  28774. 6.05
  28775. and comments that perhaps
  28776. 6.05
  28777. *Configure Step 6 1
  28778. 6.05
  28779. would work for 80-track discs. He says that to restore normal step delay
  28780. you should use
  28781. 6.05
  28782. *Configure Step 3
  28783. 6.05
  28784. In response to Roger Power’s query last month, Howard Snow points out
  28785. that the syntax is
  28786. 6.05
  28787. *Configure <Step delay> [<drive>]
  28788. 6.05
  28789. Rather confusingly, the information on the step delay given by *Status
  28790. is just the step delay for each of the drives, so if drive 0 is
  28791. configured to the normal delay of 3, after typing *Configure Step 6 1
  28792. *Status would give Step 3 6.
  28793. 6.05
  28794. W. N. Rodger has written with a similar hint and also suggests that
  28795. perhaps all floppy drives on a system have to be set if any one is to be
  28796. changed.
  28797. 6.05
  28798. Mr Rodger has also noted that he has to leave his Cumana switchable 40/
  28799. 80 track drive switched to 80-track before selecting Format DOS 360Kb to
  28800. format a 40-track MS-DOS disc. When he then runs the PC Emulator, he has
  28801. to switch the drive to 40-track to read the disc he has just formatted!
  28802. 6.05
  28803. Compression
  28804. 6.05
  28805. S. R. Freeman reports that, when using Compression version 1.10 with his
  28806. A400/1, if he launches an application from CFS and subsequently quits
  28807. CFS without first quitting the application, the computer can hang.
  28808. Otherwise he has no problems with it.
  28809. 6.05
  28810. Mike Kinghan says that his system hangs when he tries to kill any CFS
  28811. filesystem from the iconbar. He only has to do this, however, in order
  28812. to free up the Filecore when shutting his machine down. Now he uses the
  28813. operating system Shutdown routine (via <shift-ctrl-f12>) instead and has
  28814. no problems.
  28815. 6.05
  28816. Mike also observes that “it is not a clever wheeze” to compress CFS
  28817. files using the !Squash application supplied with RISC-OS 3. This will
  28818. report a gratifying reduction in the logical byte count but when the
  28819. actual size of the new file is checked, it will usually be found that
  28820. the file has got larger. (Has anyone found a use for !Squash?)
  28821. 6.05
  28822. Dave Livsey has been told by Computer Concepts, in response to a query
  28823. about CFS’s use of a temporary file as an intermediate step in the
  28824. decompression process, that they “ ... are working on an upgrade to deal
  28825. with this ... ”
  28826. 6.05
  28827. Marc Evans says CFS version 1.10 has problems with large jobs – 10
  28828. Mbytes, for example – and suggests turning off interactive filer
  28829. operations during a large compression, otherwise you may lose files.
  28830. 6.05
  28831. He also writes: Filer_Run can be used in an alias to run CFS’d files
  28832. directly from the normal Filer window. To perform this trick, issue the
  28833. command:
  28834. 6.05
  28835. Set Alias$@Runtype D96 !Filer_Run CFS#%0
  28836. 6.05
  28837. and just double click on the file to load it.
  28838. 6.05
  28839. Confusing MS-DOS and ADFS discs
  28840. 6.05
  28841. Marc Evans warns that if you regularly use both DOS and ADFS floppy
  28842. discs, it is easy to get confused about which is which. You can easily
  28843. find yourself copying to a DOS disc thinking it is ADFS; file and
  28844. application icons appear in the destination window just as normal and
  28845. you can be none the wiser (apart from the copying being rather slower)
  28846. until you run out of space after 720Kb.
  28847. 6.05
  28848. Disc corruption
  28849. 6.05
  28850. Keith Raven has experienced two strange floppy disc faults since
  28851. upgrading. After deleting the font manager from a PD fonts disc (E
  28852. format), he found that three letters from one font had disappeared
  28853. although the disc was otherwise intact and verified OK. He was able to
  28854. load the font into !FontEd successfully for patching. The other problem
  28855. was a “broken directory” on a D format disc, just after deleting a
  28856. couple of redundant items (including a !System directory) left over from
  28857. RISC­OS 2. The disc verified properly, but a disc sector editor showed
  28858. two chunks of continuous Ns in sector 1 (on track 0 head 0). He has
  28859. noticed that ADFS buffers is set to 8 (the default?) and wonders whether
  28860. there is still a bug there.
  28861. 6.05
  28862. (We reported two months ago Acorn’s telephone help line comment that the
  28863. bug which made it advisable to configure the ADFS buffers to zero had
  28864. been fixed. We also reported Computer Concepts’ claim that, unless the
  28865. buffers are configured to zero, it is vital to dismount disks before
  28866. removing them for good from the machine because, otherwise, there may be
  28867. trouble later. Does anyone have any proof either way?)
  28868. 6.05
  28869. XOB Remote Logon
  28870. 6.05
  28871. Raymond Wright says that XOB Remote Logon, which allows a BBC Micro or
  28872. another Archimedes to access a hard disc attached to an Archimedes via
  28873. Econet, is in trouble. He thinks that it is not loading binary files to
  28874. the correct locations in the BBC’s memory.
  28875. 6.05
  28876. Printing!!!
  28877. 6.05
  28878. (This seems to be the area that is causing the greatest grief. If anyone
  28879. thinks he knows the answers, please get in touch! A number of people
  28880. have commented favourably on the Ace drivers. Perhaps, if the people at
  28881. Ace think they have got printing sussed, they might be able to help with
  28882. some of these problems.)
  28883. 6.05
  28884. (Funnily enough, Tony Cheal of Ace Computing was hoping to write us an
  28885. article about printer drivers. As I well know, when you are running your
  28886. own business, things can get very hectic. Anyway, if you do get time,
  28887. Tony, your fans are waiting in eager anticipation! Ed.)
  28888. 6.05
  28889. Printer buffer
  28890. 6.05
  28891. Several people have commented that the printer buffer doesn’t work
  28892. properly. Can this be true or is it that we don’t understand how to use
  28893. it properly?
  28894. 6.05
  28895. Richard Burnell says that if he configures the buffer to, say, 300Kb and
  28896. tries to print a draw file with lots of text, the computer hangs and not
  28897. even the escape key works. (He owns a KX-P1081 dot matrix printer.)
  28898. 6.05
  28899. Mike Kinghan writes: The RISC-OS 3 feature that I had longed for most
  28900. was background printing. Running off a manual on my LaserJet II under
  28901. RISC-OS 2 could monopolise the computer for half a day. How annoying
  28902. then to discover that prints executed from familiar applications are not
  28903. automatically run in background under the new OS. A partial remedy,
  28904. however, is to use the new Print Manager’s capability to substitute a
  28905. file for any installed printer. First take the Printer Control option
  28906. from your printer’s iconbar menu. Then select the Connection dialogue
  28907. and nominate a file of your choice in place of the installed printer.
  28908. This will make applications write to that file when they think they are
  28909. printing, and they will do this much more speedily. At your convenience,
  28910. redirect the printer connection to your physical printer and drag your
  28911. print files to the printer icon. Now they will be printed in background,
  28912. allowing you to get on with your work. (But what a palaver! Surely there
  28913. must be a simpler way?)
  28914. 6.05
  28915. Change in printer initialisation behaviour
  28916. 6.05
  28917. T. J. Bennett uses First Word Plus version 1 with an A3000 and a Citizen
  28918. Swift 24. In order to make best use of this combination, he has written
  28919. a !Boot file which redefines screen characters using VDU23 and also
  28920. defines some characters not available in the standard printer character
  28921. set as download characters to the printer. He has also modified his
  28922. printer driver. This all worked in RISC­OS 2, the printer buffer
  28923. allowing the booting process to continue to completion whether the
  28924. printer was on line or not. In RISC­OS 3, however, the !Boot will not
  28925. finish until the printer is connected, switched on and on line. (“A
  28926. giant step towards the Neanderthal,” Mr Bennett comments.) He has tried
  28927. setting PrinterBufferSize to ridiculous sizes with no discernable
  28928. effect, also RMASize and SystemSize. Does anyone have any suggestions?
  28929. (I wonder if this problem is related to that described by Mick Day last
  28930. month – see Archive 6.4 p9.)
  28931. 6.05
  28932. Mr Bennett has noticed that there is a limit to the amount of data in
  28933. the printer driver for defining each character (contrary to what the
  28934. manual says) so this cannot be used as the source of download character
  28935. data.
  28936. 6.05
  28937. Disc swapping
  28938. 6.05
  28939. Peter Prewett reports that, after loading the !Printer application on
  28940. the iconbar and then loading Impression Junior, whenever he tries to
  28941. print, he is required to insert the floppy disc from which he loaded the
  28942. original printer application. He says he “tried loading system and scrap
  28943. from the printer and other discs, none of which makes any difference.”
  28944. (My suggestion is that the problem is a misunderstanding of the purpose
  28945. of the !Scrap application: the result of running this is simply to tell
  28946. the computer that the disc it is on is the place to store temporary
  28947. “scrap” files. Thus by “loading” !Scrap from a floppy you tell the
  28948. computer to use that floppy for temporary storage during operations like
  28949. printing. If you have a hard disc, it is best to copy !Scrap onto its
  28950. root directory and to ensure that the first thing you do each time you
  28951. turn the computer on or reset it is to open a Filer window on that root
  28952. directory so that the location of !Scrap will be “seen.”)
  28953. 6.05
  28954. Peter goes on to comment that system and scrap files are difficult to
  28955. use and must be made totally transparent to the end user. “Nobody should
  28956. have to set up the computer with these files as it is certainly not
  28957. user-friendly.” Does anyone want to volunteer to write a user-friendly
  28958. article about system and scrap files? Does anyone have any ideas about
  28959. how these might be better organised in a future version of the operating
  28960. system?
  28961. 6.05
  28962. Mono greyscales (!?)
  28963. 6.05
  28964. A number of people have noticed that the so-called “mono” option in the
  28965. RISC-OS 3 printer drivers actually produces grey scales when rendering
  28966. drawfiles (although sprites are printed in black and white as might be
  28967. expected).
  28968. 6.05
  28969. LaserDirect
  28970. 6.05
  28971. I may have given the impression in the December column that it is
  28972. impossible to print rotated text out of a LaserDirect. John Winter has
  28973. pointed out that this can be done fairly easily by creating the text in
  28974. Draw and using the Convert to path menu option; this will then print
  28975. like any drawfile. Furthermore, the rotated text can be imported into
  28976. Impression, again just like any drawfile.
  28977. 6.05
  28978. John Winter has also found that in order to run the RISC­OS 3 !Printers
  28979. application after using a Computer Concepts RISC­OS 2 driver, you have
  28980. to run the following * commands (either at the command line or in a Task
  28981. window or in an Obey or Command file):
  28982. 6.05
  28983. *RMKill PDriver
  28984. 6.05
  28985. *RMReinit PDriver
  28986. 6.05
  28987. Several more people have reported problems with the quality of print
  28988. from LaserDirect printers. Michael Lowe says he has considerable
  28989. problems printing sprites, mostly incorporated into Impression docu
  28990. ments: black areas are often patterned, grey areas sometimes don’t print
  28991. and occasionally the whole of the text area breaks up giving a granular
  28992. appearance. However, the worst thing, he says, is the unpredictability
  28993. of the behaviour.
  28994. 6.05
  28995. There may, however, be an answer to this (but no solution until the new
  28996. drivers appear sometime this year, with luck): Computer Concepts have
  28997. written to Tim Powys-Lybbe saying: “We are now(!) aware of a problem
  28998. with the combination of our LaserDirect drivers 2.05 and RISC­OS 3.1.
  28999. The first Landscape page will print correctly, but on subsequent prints,
  29000. black output will be speckled. This only occurs when QuickText is off.
  29001. 6.05
  29002. “I would recommend that you turn on QuickText. If necessary, you should
  29003. install RISC­OS 2 versions of Corpus and Homerton into your !Fonts
  29004. application on disc. If you get a speckled output, changing printing
  29005. resolution or reloading the driver will restore a black image.
  29006. 6.05
  29007. “The next release of our drivers should clear up this problem.”
  29008. 6.05
  29009. Tim’s comment is that the output and the problem is a little worse than
  29010. their letter concedes.
  29011. 6.05
  29012. (And the problem also occurs fairly predictably on the BJ10 Turbo
  29013. Driver. Ed.)
  29014. 6.05
  29015. Alan Gentle recommends inserting a FontRemove statement in the !Boot
  29016. file, removing the ROM fonts, and to add Corpus, Homerton and Trinity to
  29017. the !Fonts directory on disc, i.e. the boot file should end:
  29018. 6.05
  29019. FontRemove Resources:$.Fonts.
  29020. 6.05
  29021. FontInstall <Obey$Dir>.
  29022. 6.05
  29023. (N.B. the dots at the end of each line are significant.)
  29024. 6.05
  29025. Alan also says Computer Concepts have sent him an update of PrinterLD,
  29026. version 2.05s (10-Aug-1992) which seems to work OK!
  29027. 6.05
  29028. When I started printing from Artworks, I found that the greyscales at
  29029. 600 dpi were rather distinctly graduated. At 300 dpi, the gradation is
  29030. much smoother but the individual colours have a much dottier appearance.
  29031. On CC’s recommendation, I have found that 600×300 using Screen 2 gives a
  29032. good compromise.
  29033. 6.05
  29034. On the question of how long the upgraded printer drivers are taking to
  29035. produce, CC said (in a letter dated 17th December 1992): “We have only
  29036. just received the source code (we’d have preferred proper documentation,
  29037. but there isn’t any) from Acorn. All our drivers require significant
  29038. changes to allow full RISC­OS 3 compatibility. Since the RISC­OS 2
  29039. drivers work with RISC­OS 3, their conversion is not a priority.”
  29040. 6.05
  29041. Printing after Artworks
  29042. 6.05
  29043. Roger King has found that, after printing from Artworks, computers need
  29044. to be switched off (<ctrl-reset> is not enough) before using new
  29045. applications that need to print hard copy. If this is not done, spurious
  29046. fine horizontal lines of about 4mm length are scattered throughout the
  29047. printed page. Has anyone any clues about this?
  29048. 6.05
  29049. Unwanted form feeds
  29050. 6.05
  29051. G. T. Smith’s means of preventing his Brother (Epson FX80 compatible
  29052. printer) from spewing out extra pieces of blank paper was to load the
  29053. driver into !PrintEdit, delete the formfeed code “12” from the End of
  29054. Text Job and to add ESC“8” (“ignore paper empty”) in the Start of Job
  29055. line.
  29056. 6.05
  29057. Unwanted line feeds in First Word Plus
  29058. 6.05
  29059. Dave Livsey suggests that the printer driver needs doctoring to remove
  29060. the extra line feed that it sends to the printer. Can anyone give
  29061. details?
  29062. 6.05
  29063. Editing printer drivers
  29064. 6.05
  29065. G. T. Smith says that he made the mistake of assuming that, having
  29066. copied his modified printer driver onto his hard disc, !Printers would
  29067. find it and the modification would take effect, but it didn’t. He says
  29068. you need to load !Printers onto the iconbar and re-install the driver by
  29069. dragging it into the Printer Control window from the !Printers menu.
  29070. 6.05
  29071. Tim Nicholson says that if you change the configuration settings of a
  29072. printer which is not the currently selected one (i.e. its icon is greyed
  29073. out), then the next time you print, the print manager uses the driver
  29074. you have reconfigured not the selected one.
  29075. 6.05
  29076.  
  29077. 6.05
  29078. PC Emulator
  29079. 6.05
  29080. Mike Small has found that PC programs such as Tetris run first time but
  29081. when they get to the point where they ought to re-load, i.e. when he
  29082. “dies”, he gets the messages:
  29083. 6.05
  29084. M2ExHandle abort - Bad Entry Sequence
  29085. 6.05
  29086. *CD \Tetris
  29087. 6.05
  29088. FileCore in use (Error number &108A0)
  29089. 6.05
  29090. *Tetris
  29091. 6.05
  29092. He is using version 1.34 of the emulator, patched in accordance with the
  29093. Support instructions. (He assumes that the altering of the filetype of
  29094. the DOS partition to DOSDisc doesn’t apply to him because he uses
  29095. floppies.) He has a user port and MIDI on a basic A3000. Does anyone
  29096. have any ideas?
  29097. 6.05
  29098. Nik Kelly finds that his Quick Basic editor scrolls at a useful speed
  29099. now that he has an ARM3 and RISC­OS 3, but has found that the freebie,
  29100. QB, that comes with MS-DOS 5, does not read his .BAS files.
  29101. 6.05
  29102. He also says that his real-time clock is now always wrong (using PC
  29103. emulator 1.6 and MS-DOS 3.3) and asks why?
  29104. 6.05
  29105. Richard Burnell says that version 1.81 of the emulator won’t read Atari
  29106. format discs with RISC­OS 3.10 and asks when the new version of the
  29107. emulator is due for release.
  29108. 6.05
  29109. Miscellaneous Hardware Tips
  29110. 6.05
  29111. Ground Control teletext adaptor
  29112. 6.05
  29113. Mike Williams found that his problem with this was a hardware problem
  29114. and nothing to do with RISC­OS 3. He had changed to an A5000 and there
  29115. is a subtle difference in the hardware of the printer port. Ground
  29116. Control are offering an upgrade to a podule version − but he doesn’t
  29117. know where he is going to find a fifth podule slot!
  29118. 6.05
  29119. SCSI podule and MIDI board conflict
  29120. 6.05
  29121. Richard Burnell found that his Vertical Twist A3000 Econet MIDI/sampler
  29122. board would not work with his 8-bit Lingenuity SCSI podule because they
  29123. were competing for use of fast interrupts. Version 2.45 of the SCSI
  29124. firmware is now available and the MIDI port now works fine. (This
  29125. doesn’t sound like a RISC-OS 3 problem to me, but I will include it
  29126. anyway!)
  29127. 6.05
  29128. Pineapple digitiser
  29129. 6.05
  29130. The problem Tim Nicholson mentioned in Archive 6.3 p15 was cured by the
  29131. addition of an “extra decoupling capacitor”.
  29132. 6.05
  29133. Brainsoft expansion card
  29134. 6.05
  29135. Tim Nicholson reported (Archive 6.3 p15) that this didn’t work. Raymond
  29136. Wright says he thinks his works OK, but he has had problems with the
  29137. software in RISC­OS 2, some of which have righted themselves in
  29138. RISC­OS 3! (The sound module still seems to want to hog all available
  29139. memory, though.)
  29140. 6.05
  29141. Maths co-processor
  29142. 6.05
  29143. Raymond Wright says there is no built-in support in RISC­OS 3 for the
  29144. maths co-processor card so he still has to load FPEmulator 3.2 from
  29145. disc.
  29146. 6.05
  29147. Impression dongle
  29148. 6.05
  29149. Roger Power’s problem mentioned last month turned out to be a defective
  29150. dongle (apparently it was one of the very early ones), which CC have
  29151. replaced.
  29152. 6.05
  29153. G. T. Smith had a similar problem and while he was waiting for a
  29154. replacement dongle it was suggested that he should try “shorting all the
  29155. pins of the dongle with a piece of earthed kitchen foil.” Apparently it
  29156. worked! (I suggest you only try this if you are confident you know what
  29157. you are doing.)
  29158. 6.05
  29159. Roger King reports that he had a problem with both laser printers and a
  29160. Deskjet 500 ejecting blank sheets of paper with spurious characters on
  29161. the first line of the new page, especially when printing from PipeDream
  29162. 4 documents. When the Impression dongles were removed the problem went
  29163. away.
  29164. 6.05
  29165. Keith Raven agrees that there is something strange. Once, after
  29166. switching off the computer and restarting, he tried printing from Basic
  29167. using <ctrl-B> but the computer locked up as if the printer wasn’t on
  29168. line. Loading !Printers and trying to print from !Edit caused the system
  29169. disc to run and the iconbar to flash but no output. Loading Impression
  29170. then caused most, but not all, of the previously “printed” output from
  29171. !Edit to arrive at the printer. However, he could not repeat this. Since
  29172. he had previously used the printer successfully in similar circums
  29173. tances, he wonders if the problem might be something to do with printer
  29174. initialisation.
  29175. 6.05
  29176. Miscellaneous Hints & Tips
  29177. 6.05
  29178. Screen modes
  29179. 6.05
  29180. Peter Prewett says that mode 31 “flashes fast” on his A440/1 with an
  29181. Eizo 9060s Multiscan. He also says that mode 27 will not run on an A310
  29182. with an NEC Multiscan. (I also find that mode 31 is unusably flickery on
  29183. my Taxan 770 Plus, but surely one of the purposes in giving us such a
  29184. wide variety of modes is to give each user a greater chance of finding
  29185. some that suit his own particular monitor.)
  29186. 6.05
  29187. Marc Evans recommends non-multisync users to use mode 35 as their
  29188. configured mode because it gives a bit more room to work in without
  29189. decreasing resolution in the way mode 16 does.
  29190. 6.05
  29191. Desktop Boot files
  29192. 6.05
  29193. Colin Singleton has been puzzled to find that, after creating a Boot
  29194. file and rebooting, a number of applications that were running at the
  29195. time he created the Boot file failed to start up. The reason for this is
  29196. that only “RISC­OS 3 aware” applications will be inserted automatically
  29197. into a !Boot file. (Apart from any other reason, the operating system
  29198. needs to be able to find out where on disc each application was loaded
  29199. from and it can’t do this unless the application is programmed to be
  29200. able to tell the operating system when asked. Originally, RISC­OS 3
  29201. applications weren’t programmed to behave in this way.)
  29202. 6.05
  29203. If you want your Boot file to run an older application (including, for
  29204. instance, current versions of Impression) you have to edit !Boot and add
  29205. the appropriate instructions by hand. To do this (assuming you have
  29206. already created a Desktop Boot file), load !Boot into !Edit (the quick
  29207. way is to <shift-double-click> on it) and you will probably find a
  29208. number of lines reading “Filer_Boot ... ” followed by some reading
  29209. “Filer_Run ... ”. Immediately after these, add another line reading
  29210. “Filer_Run ” followed by the full path name of the application, and
  29211. repeat for each application you want to run. The process is described in
  29212. more detail in the User Guide starting at page 112.
  29213. 6.05
  29214. Colin Singleton has also tried, as the manual suggests, creating two
  29215. !Boot files so that he can switch at will from one “world” to another.
  29216. However, when he tries to run them he gets a message “You cannot have
  29217. two copies of !Alarm at once.” Does anyone have any suggestions?
  29218. 6.05
  29219. When Götz Kohlberg had created a Boot file and tried rebooting, he got
  29220. an error message: “not enough memory or not within desktop world”.
  29221. (Could this happen if the configured “language” is not Desktop? (Number
  29222. 10 in RISC-OS 3.))
  29223. 6.05
  29224. Control of ARM3 cache
  29225. 6.05
  29226. Götz Kohlberg found that the *Cache on command turned the cache off and
  29227. *Cache off turned it on! He also found that when he installed the Aleph
  29228. One hare and tortoise module, the effect of clicking on the iconbar
  29229. icons was also reversed. His work-around for this problem is to include
  29230. *Cache on as the very first command in his !Boot file and to include the
  29231. command *Cache off immediately before the line that runs the !Arm3
  29232. application.
  29233. 6.05
  29234. ROM modules
  29235. 6.05
  29236. R. D. Attwood asks how he can find out which modules are in ROM so that
  29237. he doesn’t duplicate them in the system directory on disc. Simple: press
  29238. <ctrl-f12> to open a Task window and type RomModules at the star command
  29239. prompt. A list of modules in the system ROM and in the ROMS on any
  29240. podules installed on the machine will scroll past. To read the list and
  29241. print it or save it: bring up the Task window menu and choose the
  29242. “Suspend” option then treat the contents of the window just like any
  29243. other Edit window.
  29244. 6.05
  29245. To see what else is in ROM ...
  29246. 6.05
  29247. ... bring up the menu over the Apps icon on the iconbar and choose the
  29248. “Open ‘$’” option. You can now explore all the resources stored in ROM.
  29249. 6.05
  29250. Toolsprites
  29251. 6.05
  29252. Several months ago, the Archive monthly disc included a nice collection
  29253. of “tool” sprites designed to smarten up the appearance of window icons
  29254. (including things like 3D-effect sliders that look pushed-in when you
  29255. drag them). I found that the original set didn’t quite work properly,
  29256. but that simply by adding one extra sprite (“blicon22”) copied from a
  29257. similar set on a recent Acorn User disc, I got a set which seems to work
  29258. fine. This set is on this month’s program disc in a file called
  29259. “Win3Tools”. To use it, I suggest you copy it into your !System
  29260. directory and include the command
  29261. 6.05
  29262. ToolSprites System:Win3Tools
  29263. 6.05
  29264. in your !Boot file. (Note: this file only includes “22” definitions for
  29265. “square-pixel” high resolution modes.)
  29266. 6.05
  29267. Shift key behaviour
  29268. 6.05
  29269. R. D. Attwood has found his left shift key giving a ¤ symbol. On
  29270. investigation, he has found that under the key there are two contacts:
  29271. one gives ¤, the other £. The !IntKey module on the Support disc seems
  29272. to solve the problem but, as he says, it should not be necessary to run
  29273. this. Has anyone any ideas?
  29274. 6.05
  29275. Shift-double-clicking into editors
  29276. 6.05
  29277. Marc Evans says that if you shift-double-click on a file to load it into
  29278. an editor, the editor can be confused about what filetype it is and can
  29279. save an Obey file as Text. (This doesn’t seem to happen with !Edit, but
  29280. it does with !StrongEd II. Without the PRM, I can’t be sure but I would
  29281. guess that what is happening is that a shift-double-click causes the
  29282. Filer to broadcast a message inviting applications to load the file as
  29283. if it were a text file. If !Edit picks it up, it presumably then reads
  29284. the directory information to find out what the filetype is, whereas
  29285. !StrongEd carries on assuming it is a text file. I wonder what other
  29286. editors like DeskEdit do?)
  29287. 6.05
  29288. Fix for SciCalc
  29289. 6.05
  29290. Colin Dean, one of the authors of SciCalc, has written in with a fix for
  29291. the bug in the +/− operator mentioned in Archive 6.3 p18.
  29292. 6.05
  29293. The +/− operator should always change the sign of the currently
  29294. displayed value, unless you are in the middle of entering an exponent,
  29295. in which case it should change the sign of the exponent. In practice, it
  29296. can produce bizarre results: e.g.
  29297. 6.05
  29298. enter    display
  29299. 6.05
  29300. 1E13   1E13
  29301. 6.05
  29302. +/−   1E-13
  29303. 6.05
  29304. =   1E-13
  29305. 6.05
  29306. +/−   3E-30
  29307. 6.05
  29308. The last displayed result should be −1E−13!
  29309. 6.05
  29310. To fix this alter the lines that read:
  29311. 6.05
  29312. 5340 IF entry$=“0” THEN entry$= FNtobase(dreg)
  29313. 6.05
  29314. 5350 IF base%=1 THEN
  29315. 6.05
  29316. 5360 IF (INSTR(entry$,“E”)=0) OR (F%=TRUE) THEN
  29317. 6.05
  29318. to read, instead:
  29319. 6.05
  29320. 5340 IF F%=TRUE THEN entry$= FNtobase(dreg)
  29321. 6.05
  29322. 5350 IF base%=1 AND F%=FALSE THEN
  29323. 6.05
  29324. 5360 IF (INSTR(entry$,“E”)=0)THEN
  29325. 6.05
  29326. Copying a directory into itself
  29327. 6.05
  29328. You can’t any more! (Marc Evans says.) (For those who don’t remember the
  29329. heady days when RISC­OS 2 was young, one of its features was that it was
  29330. quite easy to fill a disc by recursively copying a directory into
  29331. itself!)
  29332. 6.05
  29333. Unplugging !Configure
  29334. 6.05
  29335. !Configure can be unplugged if you do not want the machine altered −
  29336. useful in a school situation! (Marc Evans)
  29337. 6.05
  29338. Bug in BASIC64
  29339. 6.05
  29340. A. G. Rimmer reports that there is a fault in BASIC64 in that the format
  29341. specification given by @% frequently behaves incorrectly for fixed
  29342. format (but not for E or G format). This is illustrated by the following
  29343. program:
  29344. 6.05
  29345. 10 REM >Double precision test
  29346. 6.05
  29347. 20 @%=“F30.2”
  29348. 6.05
  29349. 30 PRINT; “With @% = &”;STR$~(@%);“:”‘
  29350. 6.05
  29351. 40 REPEAT
  29352. 6.05
  29353. 50 INPUT “Number input: ” x
  29354. 6.05
  29355. 60 PRINT “ prints as ” x
  29356. 6.05
  29357. 70 UNTIL FALSE
  29358. 6.05
  29359. This produces the following output:
  29360. 6.05
  29361. Number input: 102.63
  29362. 6.05
  29363. prints as 1.03E2
  29364. 6.05
  29365. Number input: 1234.5678
  29366. 6.05
  29367. prints as 1.23E3
  29368. 6.05
  29369. Number input: 12.25
  29370. 6.05
  29371. prints as 12.25
  29372. 6.05
  29373. Number input: 0.16
  29374. 6.05
  29375. prints as 1.60E-1
  29376. 6.05
  29377. Acorn have acknowledged the fault and have told Mr Rimmer that there is
  29378. no work-around or fix for this problem at the moment.
  29379. 6.05
  29380. Limited precision of SciCalc’s display
  29381. 6.05
  29382. Mr Rimmer also observes that, whereas SciCalc calculates using floating
  29383. point numbers with 52 binary digits, which are equivalent to 15.7
  29384. decimal digits, you can only input decimal numbers with up to 10 digits
  29385. plus a two digit exponent and the program can only display results with
  29386. 10 significant figures (and 3-digit exponents up to the maximum possible
  29387. 308). What is wanted is a display for both input and results of a 15 or
  29388. 16 digit mantissa plus an exponent of up to 3 digits (up to the limit of
  29389. 308).
  29390. 6.05
  29391. Again Acorn has acknowledged the limitation but has said that a version
  29392. with extended display is not available. (I wonder whether Colin Dean
  29393. might be able to help?)
  29394. 6.05
  29395. Legible menus in 1st Word Plus
  29396. 6.05
  29397. In Archive 6.3 p12 there was a hint on altering the palette for First
  29398. Word Plus release 1.1 so that the menus are legible. This involved a
  29399. special Obey file. Gordon Lindsay-Jones suggests a different solution.
  29400. He first changed colour 14 to black and saved the altered palette in the
  29401. Library directory on the 1wp disc. Before he runs 1wp, he opens the
  29402. Library window and double-clicks on this palette, then when he finishes,
  29403. he opens the menu on the iconbar palette icon and selects Default to
  29404. restore the palette.
  29405. 6.05
  29406. (Mike Williams says version 0.01 of First Word Plus works fine!)
  29407. 6.05
  29408. Using RMFaster
  29409. 6.05
  29410. Mike Williams points out that C programs run much faster if you perform
  29411. *RMFaster SharedCLibrary and, similarly, programs that use the FPE a lot
  29412. (e.g. ray tracers) will benefit from *RMFaster FPEmulator. Under
  29413. RISC­OS 2, these modules were loaded from disc so always ran in RAM. In
  29414. RISC­OS 3, we can choose whether to put them in RAM for speed or leave
  29415. them in ROM to save memory.
  29416. 6.05
  29417. Draw crashing
  29418. 6.05
  29419. A number of people have had !Draw crash out on them but luckily it saves
  29420. work in progress as a valid drawfile in the Scrap directory before it
  29421. exits. Therefore, you should be able to recover your work by opening
  29422. !Scrap (shift-double-click on its icon), then opening the directory
  29423. called ScrapDir inside it.
  29424. 6.05
  29425. Wimp drag and double-click defaults
  29426. 6.05
  29427. Mike Williams finds that settings of 5 for WimpDoubleClickDelay and 10
  29428. for WimpDoubleClickMove make detailed work in !Draw much more manage
  29429. able. He wonders if anyone knows how to set them exactly like they were
  29430. in RISC­OS 2.
  29431. 6.05
  29432. Mouse menu button behaviour
  29433. 6.05
  29434. In response to my tip in Archive 6.3 p19, Tim Nicholson says his mouse
  29435. menu button still returns a continuous 2. I then wondered if it was my
  29436. tracker ball that was at fault so plugged in my clapped out mouse, but
  29437. no: both mouse and tracker ball still return 2 for a moment then 0 when
  29438. the menu button is held down. Tim wonders if the mouse response is
  29439. configurable.
  29440. 6.05
  29441. Opening a root directory without running all the !Boot files (and
  29442. avoiding viruses)
  29443. 6.05
  29444. Tim Nicholson points out that just as control-double-clicking on a
  29445. directory icon opens a filer window on the directory without running the
  29446. boot files of all the applications in the directory, control-double-
  29447. clicking on a drive icon does the same for a root directory. As he says,
  29448. this is jolly useful for inspecting discs of unknown origin if you
  29449. suspect they might contain viruses.
  29450. 6.05
  29451. Keys that don’t work
  29452. 6.05
  29453. Tim Nicholson says that he “keeps losing his Caps Lock button” and
  29454. occasionally <ctrl-shift-f12> doesn’t work. Is this a problem with an
  29455. application? (Or has he been dropping his porridge into the keyboard,
  29456. again?)
  29457. 6.05
  29458. Task manager
  29459. 6.05
  29460. (Tim Nicholson warns: before trying this save all your work!) Try
  29461. clicking <menu> over the Task Manager and choosing the Info option, then
  29462. click <menu> in the grey area where it says NAME: VERSION: AUTHOR:.
  29463. (Don’t get too excited.)
  29464. 6.05
  29465. Alarm
  29466. 6.05
  29467. Colin Singleton writes, in response to Ken Cowap’s comments on !Alarm
  29468. (Archive 6.3 p15): “I think he is wrong in claiming that it contains a
  29469. malfunction, but it is certainly less friendly than it might be. It does
  29470. indeed appear to insist that the start and finish dates are in the same
  29471. year when setting summertime, so you cannot set Off Oct 1992 and On
  29472. March 1993. Since we have now finished with BST for 1992, this is not
  29473. now a problem.”
  29474. 6.05
  29475. He has found that after setting the two dates for 1993, the Alarm file
  29476. contains three dates, the third date being 7th February 1994. He
  29477. presumes that at 1 a.m. on that day, an alarm will go off to remind him
  29478. to set the summertime dates for that year! Does anyone know what the
  29479. date is for?
  29480. 6.05
  29481. Change in behaviour of !Boot files
  29482. 6.05
  29483. Under RISC­OS 2, J. Lageu used to protect directories using the
  29484. principle that, whenever a directory was opened, all the boot files in
  29485. it were actioned (unless, I think, a sprite with the name of the
  29486. application had been loaded into the Wimp sprite pool). He finds that
  29487. RISC­OS 3.10 on an A5000 only sees the !Boot file the first time it
  29488. “sees” the application. I wonder whether it is possible to tell the
  29489. operating system to forget that it has seen the application?
  29490. 6.05
  29491. JPEG
  29492. 6.05
  29493. Steve Dommett has written, in response to Roger Darlington’s query in
  29494. Archive 6.3 p28, to point out that there is a very useful implementation
  29495. of JPEG included in !ChangeFSI on the Support Disc. The required files
  29496. are cjpeg, djpeg and JPEGinfo (which provides instructions). !ChangeFSI
  29497. will read JPEG files in the same way as other file types but will need
  29498. plenty of spare space on the !Scrap disc. He has converted many sprites,
  29499. saving megabytes of disc space, with no appreciable loss of quality.
  29500. 6.05
  29501. Peter Sturdy adds that if you want to use JPEG from the command line, it
  29502. is helpful to add the following lines to your !Boot file:
  29503. 6.05
  29504. Set Alias$cjpeg <Obey$Dir>.cjpeg %%*0
  29505. 6.05
  29506. Set Alias$djpeg <Obey$Dir>.djpeg %%*0
  29507. 6.05
  29508. JPEG files can then be manipulated from a Task window without changing
  29509. directory or moving the files into the Library directory.
  29510. 6.05
  29511. (The point of JPEG is that it gives much greater savings in filing space
  29512. but the compression process is not completely reversible so the
  29513. decompressed image will not be identical to the original. For sprites
  29514. this doesn’t normally matter.)
  29515. 6.05
  29516. Directory catalogue display
  29517. 6.05
  29518. Raymond Wright has found an irritating change in the display of a
  29519. catalogue listing (outside the Desktop): on an 80 column screen you only
  29520. get three columns of files instead of 4 and in a 40 column mode you only
  29521. get one. Can there be a good reason for the change, he
  29522. asks?                                            
  29523. 6.05
  29524. Two Questions
  29525. 6.05
  29526. Backup and the “next” slot
  29527. 6.05
  29528. If you back up an 800Kb floppy with the “Next” slot set to the standard
  29529. 640Kb, the backup will take two passes. In order to make the computer
  29530. copy the whole disc in one go, you have to set the Next slot to more
  29531. than 800Kb. Can it be told to use more than the current Next slot if the
  29532. memory is available?
  29533. 6.05
  29534. Icon dragging from filer windows
  29535. 6.05
  29536. There is a configuration option (which I can’t find now that I want it!)
  29537. that instructs RISC­OS 3 “aware” applications to drag the whole icon
  29538. rather than just an empty square box when saving a file. Why on earth
  29539. isn’t the Filer programmed to do the same when you drag an icon from a
  29540. Filer window?                                          
  29541.                         
  29542. 6.05
  29543. Improvements over RISC­OS 3.0
  29544. 6.05
  29545. Paul Skirrow lists the following improvements:
  29546. 6.05
  29547. •   after a Shutdown the Restart button works properly and restarts the
  29548. Pinboard correctly
  29549. 6.05
  29550. •   the ADFSBuffers configuration now works correctly and speeds up disc
  29551. access significantly (although there may still be a problem in 1Mb
  29552. machines).
  29553. 6.05
  29554. •   Paint handles 256 grey scale sprites correctly and also 256 colour
  29555. sprites can have any of their colours changed independently (I’d
  29556. appreciate an article on the changes in colour handling in RISC­OS 3 –
  29557. starting with the basics like the points mentioned here.)
  29558. 6.05
  29559. •   an HP Laserjet / Deskjet bug has been cured.
  29560. 6.05
  29561. •   there is a new X, Y offset facility in the printer driver system,
  29562. separated from the “paper margins” (which now specify which area the
  29563. printer driver should allow printing in, although it would make more
  29564. sense to set the top left values to be the same). Paul says this could
  29565. have some other benefits: you should be able to specify negative offsets
  29566. to indicate that the printer must move the print head some distance to
  29567. actually reach the paper, which might be useful when printing on labels.
  29568. Unfortunately, there is a bug: the X, Y origin is not stored and always
  29569. defaults to zero! (My mind goes numb when I read this sort of descrip
  29570. tion. Can anyone help with an idiots’ guide to printer margins?) (Gerald
  29571. Fitton, in Archive 6.4 p39, admitted to not really understanding how it
  29572. all worked but gave an empirical approach in his PipeLine column. Ed.)
  29573.  
  29574. 6.05
  29575. •   Printer drivers now set the page length from the “number of text
  29576. lines” specification, and a number of other printer problems have been
  29577. cured.
  29578. 6.05
  29579. •   Starting up is quicker (10 seconds quicker on an A5000).
  29580. 6.05
  29581. •   Some useful extra screen modes are provided.  A
  29582.  
  29583. Hints and Tips
  29584. 6.6
  29585. •   Applications launcher − When working on various tasks on my
  29586. Archimedes, I often find that I need to launch more than one
  29587. application. For example, I have a wide selection of regularly used
  29588. clipart stored in Library format within Draw Plus. These clipart items
  29589. form regular input while using Ovation or Impressions. Therefore, when
  29590. working on DTP materials I will, on most occasions, be running Draw Plus
  29591. as well. The following ‘Pseudo Application’ was therefore devised to
  29592. automate the launch of the required cluster of applications (in this
  29593. case Ovation & Draw Plus).
  29594. 6.6
  29595. Begin by creating an application directory (i.e. one where the name
  29596. begins with a !) with a name to suite the task cluster (e.g. !DTP).
  29597. Within this you need to create a !Boot and a !Run file, both Obey files,
  29598. using !Edit. The !Boot file only needs to contain the single line ....
  29599. 6.6
  29600. IconSprites <Obey$Dir>.!Sprites
  29601. 6.6
  29602. while the !Run file should contain the following...
  29603. 6.6
  29604. IconSprites <Obey$Dir>.!Sprites
  29605. 6.6
  29606. Desktop -FILE <Obey$Dir>.
  29607. 6.6
  29608. FileLaunch
  29609. 6.6
  29610. In each case, the IconSprites command directs the system to the !Sprites
  29611. file for the pseudo-application while the Desktop command in the !Run
  29612. file instructs the system to execute a series of commands held within
  29613. the file called ‘FileLaunch’.
  29614. 6.6
  29615. Again within !Edit, create a new textfile, to be called ‘FileLaunch’. It
  29616. is the contents of this file that will determine which applications are
  29617. to be launched by your pseudo-application. For example, the following
  29618. will launch both Ovation and Draw Plus as well as opening the directory
  29619. viewer to my ‘Files’ folder and my Draw Plus Library folder. The exact
  29620. contents being dependent on the organisation of your own system.
  29621. 6.6
  29622. Filer_CloseDir ADFS::4
  29623. 6.6
  29624. ADFS::4.$.MoreApps.!Ovation
  29625. 6.6
  29626. ADFS::4.$.!DrawPlus
  29627. 6.6
  29628. Filer_OpenDir ADFS::4.$.Files
  29629. 6.6
  29630. Filer_OpenDir ADFS::4.$.Files. DrawLibs
  29631. 6.6
  29632. Save this as ‘FileLaunch’ within the pseudo-application.
  29633. 6.6
  29634. The final job is to create an appropriate sprite to represent your new
  29635. pseudo-application. This should be 34 × 17 units in size. For mine, I
  29636. have merged the small display icons from Ovation and Draw Plus. Once all
  29637. is completed, double clicking on the application will, as if it were a
  29638. normal application, launch the specified applications and open the
  29639. required directory viewers.
  29640. 6.6
  29641. Although this was initially developed on a hard disc based system, it
  29642. can be just as useful to floppy based systems. For example, it can be
  29643. set up to launch an application along with an appropriate printer driver
  29644. or launch a collection of floppy disc based utilities. For users still
  29645. working with Risc-OS 2, if the application is given the name !Boot and
  29646. placed on the root directory, with the drive set to *OPT 4 2, it gives
  29647. many of the same basic facilities as the new Desktop Boot of RISC-OS
  29648. 3.10.
  29649. 6.6
  29650. NOTE: This system does not effect the normal action when you double
  29651. click on an applications file. This will, as always, launch its own
  29652. application and load in the file clicked on.  Mike McNamara, Dunstable.
  29653. 6.6
  29654. •   ArcLaser 1.68 and PipeDream − With ArcLaser installed, PipeDream
  29655. (3.14) won’t print using its own driver. It is necessary not only to
  29656. quit ArcLaser but to RMkill the LQEmulator module.  Richard Torrens,
  29657. Cambridgeshire.
  29658. 6.6
  29659. •   BJ10e/ex with CC Turbo Driver − Under Risc-OS 3/3.10 there is a
  29660. conflict between the Turbo Driver and the new !Printers system. If you
  29661. contact CC, they will tell you to issue the following from the * prompt
  29662. ....
  29663. 6.6
  29664. RMKill PDriver
  29665. 6.6
  29666. RMREInit PDriver
  29667. 6.6
  29668. A far more elegant way is to place these two commands within the !Run
  29669. file of the !Printers application. They should be added immediately
  29670. before the line which reads ....
  29671. 6.6
  29672. RMEnsure PDriver 3.16 Error etc
  29673. 6.6
  29674. You will now be able to switch between the two systems without further
  29675. problems!
  29676. 6.6
  29677. Mike McNamara, Dunstable.
  29678. 6.6
  29679. •   Dongle problems − Various people have found that, on occasion, they
  29680. cannot print from other applications when using an Impression or
  29681. Artworks dongle. The situation seems to be worse under RISC-OS 3. The
  29682. (temporary) solution is to run Impression or Artworks and quit it. All
  29683. should then work OK. (Hint offered by various readers.) (For more
  29684. discussion, see the Comment Column on page 18.)
  29685. 6.6
  29686. •   FoxPro version2 − Anyone who has tried to run FoxPro version2 under
  29687. version 1.8 of the PC Emulator will have found that it does not work. If
  29688. you still have an earlier version of the Emulator, try using that
  29689. because it is said to run under some of the earlier versions.  David
  29690. Wild, Hemel Hempstead.
  29691. 6.6
  29692. •   Pocket Book power supply − Maplin sell a 300mA regulated transformer
  29693. for £8.95 (+£1.20 p&p) which will do the same job as the Pocket Book
  29694. mains adaptor and more besides. Maplin’s code is YB23A and the
  29695. polarisation should be negative at the tip at 9V.
  29696. 6.6
  29697. You cannot format Flash SSDs above 256Kb unless the Pocket Book is
  29698. connected to an adaptor.  Apparently, the Flash SSDs require 12-15V when
  29699. formatting.  Mark Goodwin, Worcester.
  29700. 6.6
  29701. (N.B. You can’t just use any old transformer for the PocketBook and we
  29702. can’t, of course, be held responsible for any damage which occurs if a
  29703. particular power supply does not work. We still cannot get the Acorn
  29704. Pocket Book mains adaptors but are buying some Psion ones which we will
  29705. be able to sell at the same price − £15 inclusive. Ed)
  29706. 6.6
  29707. • Printers, margins, etc − I disagree with the statement in Archive 6.5
  29708. p37 that the X Y origin is not stored. There seems to be a fundamental
  29709. lack of understanding in this area. If you want a full explanation, I
  29710. will do one but, in brief, the offsets should be set using the technique
  29711. described in the readme file in the Printers directory using the TopLeft
  29712. printer file. Paper margins should then be set to be at least as big as
  29713. the X Y values, then when the printer tries to print, it says to itself,
  29714. “left margin 20mm (say) so I have to move the printer head 20mm before I
  29715. start printing. Ah, but wait a minute, the print head is already Xmm
  29716. from the edge, so I only need to move another (20 − X)mm before I start
  29717. printing.”
  29718. 6.6
  29719. The same is true for Y. None of the default definitions I have looked at
  29720. are anywhere near right which doesn’t help. BJ330 printers auto sense
  29721. the left hand edge of the paper so goodness knows what happens then!  
  29722. Tim Nicholson, Cranleigh.
  29723. 6.6
  29724. •   Scrap file − Floppy disc users may be pleased to know that the
  29725. Wimp$Scrap file, used for in-memory transfer, does not have to be on a
  29726. physical medium. I have included the line:
  29727. 6.6
  29728. Set Wimp$Scrap RAM::RamDisc0.$ .ScrapFile
  29729. 6.6
  29730. in my !System.!Boot file. I have configured the machine to automatically
  29731. create a RAM disc on switching on and have since avoided much disc
  29732. swapping. The !Scrap folder can be avoided, though the Printers (RISC-OS
  29733. 3) application needs to see it. It can be placed inside the Printers
  29734. directory, and the line:
  29735. 6.6
  29736. Obey <Obey$Dir>.!Scrap.!Boot
  29737. 6.6
  29738. included near the beginning of the !Printers.!Run file.  Robert Fuller,
  29739. Basingstoke.
  29740. 6.6
  29741. •   !Squash − This program is a side product of the new printer drivers −
  29742. the printer definition files are held in squash format. If you change
  29743. the filetype of a printer definition file to Squash (filetype_FCA) and
  29744. drag it into Squash, it will be unsquashed. Loading into Edit will
  29745. reveal a file not unlike the old OS2 PrDataSrc files, although the
  29746. graphics data is held differently. RISC-OS 3 requires the definition
  29747. files in the unsquashed format. PrintEdit will happily edit files in
  29748. either format but always produce Squashed output.
  29749. 6.6
  29750. •   Squirrel and Compression − If, like me, you routinely run your
  29751. Squirrel tables from a Compression window, you may eventually get an
  29752. error message, “Bad File Format”. If you then open the table’s
  29753. directory, you will find that some of the files inside show the white
  29754. File_xxx icon.
  29755. 6.6
  29756. Setting the filetype to Squirrel’s DB7 format, will still result in an
  29757. error message.
  29758. 6.6
  29759. Here is what Digital Services told me: There is − they think − a bug in
  29760. Compression, which causes this effect very intermittently. The thing to
  29761. do then is to set the filetype to CFSlzw and then uncompress those
  29762. files.  Jochen Konietzko, Köln.
  29763. 6.6
  29764. •   Symbolic links − If you want to have a program in more than one
  29765. folder, it is easy enough to store the program once and then create a
  29766. link to this program in other folders. In RISC OS 3.1: load !Edit and
  29767. create a new Obey file. Shift-drag the program into this window. Save
  29768. the Obey file where you want to have the link. Then a double click on
  29769. the link-Obey file executes the original program. This works with any
  29770. filetype − not just applications.  Thomas Goseberg, Germany.  A
  29771.  
  29772. 6.6
  29773. Using RISC­OS 3.1
  29774. 6.6
  29775. Hugh Eagle
  29776. 6.6
  29777. “Don’t blame it all on RISC-OS 3!” Archive staff have, on a number of
  29778. occasions recently, given this advice to Archimedes users. “But it has
  29779. only happened since I changed to RISC-OS 3...” Yes, but that doesn’t
  29780. mean it’s the fault of RISC-OS 3. Often it’s a hardware fault that was
  29781. set off by fiddling with the p.c.b. of an old computer − or, as in some
  29782. of the cases in Hugh’s column this month, it is caused by a change in
  29783. configuration that occurred when you did a <delete-powerup> (or because
  29784. you didn’t do one!). The final reason is that you haven’t read the
  29785. manual − if I had a pound for every time I have had to give advice that
  29786. was basically, “Read the manual”... Ed.
  29787. 6.6
  29788. Once again I’ve been nearly overwhelmed by the flood of correspondence.
  29789. However, do keep the letters coming, please; I’ll try to use them all in
  29790. due course, I promise! My address remains: 48 Smithbarn, Horsham,
  29791. Sussex, RH13 6DX.
  29792. 6.6
  29793. Paul says, “Try to be brief”, so I’ll get started.
  29794. 6.6
  29795. Programmers’ Reference Manual
  29796. 6.6
  29797. I was told at the BETT show in January that the new PRM will be ready in
  29798. “the second quarter” of 1993.
  29799. 6.6
  29800. Programs and hardware that work
  29801. 6.6
  29802. Some additions to the lists of previous months:
  29803. 6.6
  29804. − Chocks Away
  29805. 6.6
  29806. − Conqueror
  29807. 6.6
  29808. − DrawBender
  29809. 6.6
  29810. − “Most 4Mation software”
  29811. 6.6
  29812. − TaskAnsi (from David Pilling) (However, Tord Eriksson adds that you
  29813. may want to upgrade it anyway to take advantage of enhancements.)
  29814. 6.6
  29815. − Scanlight Junior 256 (it “seems to thrive”)
  29816. 6.6
  29817. − Pendown and Pendown+
  29818. 6.6
  29819. − PC emulator (“the oldest” version)
  29820. 6.6
  29821. − Pineapple Digitiser (another confirmation that it works, contrary to
  29822. the report in Archive 6.3 p15)
  29823. 6.6
  29824. − XOB Remote Logon (Correction!) Ray Wright has found that the problem
  29825. he reported last month (Archive 6.5 p29) was in fact a fault in his BBC
  29826. Micro, and that Remote Logon works fine. Apologies to XOB.
  29827. 6.6
  29828. − Acorn DTP (Needs to be patched using the Patch from the Support disc.)
  29829. 6.6
  29830. Problem programs
  29831. 6.6
  29832. ShowPage − Tord Eriksson says this “works fine so long as there is no
  29833. on-screen text! Not much use for ShowPage therefore, you might say, but
  29834. some stunning graphics are possible as shown by the examples supplied
  29835. with the program.”
  29836. 6.6
  29837. Atelier − Andrew Campbell has found that Atelier causes his A5000 to
  29838. hang whether he uses RISC­OS 3.0 or RISC­OS 3.10. (The sequencer loads
  29839. but not the main program. He has tried old modules to no effect.)
  29840. However, Atelier does still run on his A3000 after the upgrade to
  29841. RISC­OS 3.10.
  29842. 6.6
  29843. The following have been reported as not working:
  29844. 6.6
  29845. Fun School 4 (Under 5’s)
  29846. 6.6
  29847. Satfoot (a satellite tracker from AMSAT-UK)
  29848. 6.6
  29849. Copy Opts (“a handy little utility”) − Tord Eriksson has problems using
  29850. his version of ArcFS and the Pinboard: if he glues an arc’d directory to
  29851. the Pinboard then tries to open it, the computer freezes! (Perhaps this
  29852. is a problem that has been solved in a more recent version of ArcFS.)
  29853. 6.6
  29854. Tord has also found that Ballarena works perfectly but messes up all the
  29855. configuration settings (so see the section below called “Saving the
  29856. configuration” before you run it!)
  29857. 6.6
  29858. Tord says that he made Powerband work by “editing out lines 430 and
  29859. following setting up the voices, and a line further on checking the
  29860. voices.”
  29861. 6.6
  29862. Some games, like 4th Dimension’s Saloon Cars, crash with a
  29863. “WindowManager:Sprites24” error. What is a “Sprites24” anyway?
  29864. 6.6
  29865. !Psion
  29866. 6.6
  29867. Chris Dawson says that the Psion to Archimedes data transfer program by
  29868. Mark Taylor (v 1.65) no longer works with his Psion II. He has tried
  29869. everything he can think of, even three different re-wiring
  29870. configurations that he has seen. Can anyone help?
  29871. 6.6
  29872. Interrupt (Archive Shareware disc no. 6)
  29873. 6.6
  29874. M. P. Sawle has, up to now, made good use of the Interrupt module, with
  29875. the commands *RMLoad Intmodule and *Interrupt 0 in a loading file to
  29876. enable subsequent access to the command line with <ctrl-@> from within
  29877. both Basic programs and the original version of First Word Plus.
  29878. 6.6
  29879. Having installed RISC­OS 3.10 he finds that:
  29880. 6.6
  29881. •   within Basic programs: <ctrl-@> still works, but <Esc> has the same
  29882. effect and this takes priority over the normal programmed effect of the
  29883. Escape key at the time.
  29884. 6.6
  29885. •   within First Word Plus: <ctrl-@> works but he cannot return to 1wp
  29886. properly (sometimes the current document is lost), also two presses of
  29887. <Esc> take him to the command line but the document is always totally
  29888. lost.
  29889. 6.6
  29890. •   Lemmings won’t run unless he RMKills the Interrupt module first.
  29891. 6.6
  29892. Can anyone help?
  29893. 6.6
  29894. Investigator II works on the older machines, but not on the A3010/A3020/
  29895. A4000/A5000 (presumably because the hardware is different).
  29896. 6.6
  29897. LaserDirect and ROM fonts
  29898. 6.6
  29899. The reason why LaserDirect (and presumably the Turbo Drivers) have
  29900. problems with the Corpus and Homerton Oblique fonts in ROM is that the
  29901. Outlines files for these fonts do not contain full descriptions of the
  29902. letters but simply contain cross-references to the related upright
  29903. fonts. (Because these two fonts are simply slanted versions of the
  29904. upright fonts, not proper “italic” fonts, all the new font manager needs
  29905. to know is where to find the outlines of the upright fonts and what
  29906. angle to slant them at.)
  29907. 6.6
  29908. So far as I can tell, it is not necessary to disable the ROM fonts (with
  29909. a FontRemove command in the !Boot and/or !Run files of !Fonts) and
  29910. include full descriptions of Corpus, Homerton and Trinity on disc (they
  29911. would need about 250Kb); I have found that Impression and LaserDirect
  29912. manage perfectly well if I just include the following sub-directories in
  29913. my !Fonts directory on disc:
  29914. 6.6
  29915. Corpus.Bold.Oblique
  29916. 6.6
  29917. Corpus.Medium.Oblique
  29918. 6.6
  29919. Homerton.Bold.Oblique
  29920. 6.6
  29921. Homerton.Medium.Oblique
  29922. 6.6
  29923. (the files add up to 108924 bytes).
  29924. 6.6
  29925. Turning anti-aliasing off
  29926. 6.6
  29927. Tord Eriksson finds that a, ä and å are rather difficult to distinguish
  29928. with anti-aliasing on, so he turns it off by setting FontMax1 to
  29929. FontMax5 all to 0, except FontMax 3, which determines the maximum size
  29930. of font that is cached and which he sets to 200.
  29931. 6.6
  29932. Replacing the system font
  29933. 6.6
  29934. R. W. Darlington’s prayer in Archive 6.4 p11 has been answered! Rob
  29935. Davison has sent in an application (included on this month’s program
  29936. disc) called !DeskFonts, which will allow you to replace the system font
  29937. on the desktop with an outline font of your choice.
  29938. 6.6
  29939. Electronic Font Foundry RISC­OS 3 fonts
  29940. 6.6
  29941. Colin Singleton thinks that last month’s comment may have been a bit
  29942. unfair to EFF in referring to their new fonts as “more expensive”. He
  29943. suspects that the old fonts have been reduced in price and the new ones
  29944. introduced at the previous price of the old.
  29945. 6.6
  29946. What is “kerning data”?
  29947. 6.6
  29948. Colin Singleton says that he had read about this several times before he
  29949. found out what it meant. Kerning is the process of adjusting the space
  29950. between letters so that they look more natural. A common example is the
  29951. word AWAY. When printed like that, the letters appear too widely spread,
  29952. but with kerning the word can be made to look like AWAY. (I have
  29953. exaggerated the kerning to make it more obvious.) This can be done
  29954. manually in applications like Impression.
  29955. 6.6
  29956. The RISC­OS 3 font manager provides the facility for automatic
  29957. adjustment of the spacing between any pair of letters, but in order for
  29958. this to work firstly the font has to contain a “kerning table”
  29959. indicating the preferred spacing for each possible pair of letters and
  29960. secondly the application has to be aware of this facility and to make
  29961. the appropriate calls to the font manager. (Archive 5.11 pp5/6 give
  29962. details of the font manager calls, showing how you can use them in your
  29963. programs.)
  29964. 6.6
  29965. Kerning tables are built into the ROM fonts as well as the newer fonts
  29966. from EFF (and other suppliers?) I don’t know which applications use
  29967. them; presumably newer versions of Impression, etc. will.
  29968. 6.6
  29969. Filing systems: SCSI
  29970. 6.6
  29971. C. Purvis’s problems (icon in wrong place, “bad drive” error, etc – see
  29972. 6.5 p26) have been solved by a new ROM for his SCSI podule, supplied
  29973. free of charge by Oak.
  29974. 6.6
  29975. Tord Eriksson at first had problems that sounded similar to C. Purvis’s,
  29976. then happened to find that his SCSI drive had been “set to 0” and after
  29977. “resetting to 4” everything worked perfectly. (I explained this last
  29978. month, p27. Ed.)
  29979. 6.6
  29980. Philip Lardner, who has a Brainsoft SCSI podule, is having great
  29981. difficulties in copying, moving or deleting files to, from or in the
  29982. root directory. It generates all sorts of error messages such as: “Can’t
  29983. create ‘SCSI::SCSI.$’ ... ”. Philip has found that he can get round the
  29984. problem by copying via the RAM disc and deleting using a trash-can
  29985. application but he would obviously be interested in a proper “fix”. (I
  29986. don’t know whether it might be relevant but he has put “Set Alias$Free
  29987. ShowFree -FS scsi %0”, as recommended last month, in his !Boot file in
  29988. order to activate the free space window.)
  29989. 6.6
  29990. Philip has also found that his PC Emulator 1.8 sometimes suddenly hangs
  29991. the machine either during or shortly after booting up, or after quitting
  29992. the emulator.
  29993. 6.6
  29994. HCCS HardCard 45
  29995. 6.6
  29996. Barry Thompson says this needs a ROM and PAL change by HCCS costing £10
  29997. plus VAT.
  29998. 6.6
  29999. IDE
  30000. 6.6
  30001. John Birchenough was initially unable to access his Risc Developments
  30002. IDE disc drive. However, with a third (free) replacement ROM fitted in
  30003. his podule, it is now working!
  30004. 6.6
  30005. Allan Woods says that the tip given last month for getting the Free
  30006. Space window to work with SCSI drives doesn’t work with his Risc
  30007. Developments IDE drive. Bernard Perry says he knows someone with an ICS
  30008. IDE drive with the same problem. Has anyone got any ideas?
  30009. 6.6
  30010. Barry Thompson says the early Orion IDE drives do not function and
  30011. wonders whether the new proprietors at Orion are going to support them.
  30012. 6.6
  30013. Watford 5¼“ drive interface
  30014. 6.6
  30015. Gordon Lindsay-Jones has found that his problem is not with his Watford
  30016. buffer, as reported last month. The buffer worked properly with another
  30017. disc drive. However, he is still trying to find out what is wrong with
  30018. his drive.
  30019. 6.6
  30020. Printing − HP Paintjet, Draw and Poster
  30021. 6.6
  30022. Christopher Price (Sidcup) is having constant problems trying to print
  30023. from the RISC­OS 3.10 version of Draw and Poster 1.21 via an Ace printer
  30024. driver (he doesn’t know which version) to an HP Paintjet on his A420.
  30025. The printer appears not even to acknowledge Draw and refuses to output.
  30026. With Poster he gets output sometimes, though white text generally
  30027. appears black and the printer “seems to bug out if the artwork involves
  30028. clipart” imported from elsewhere. Can anyone help?
  30029. 6.6
  30030. Carriage returns and linefeeds
  30031. 6.6
  30032. Philip Woodward uses a bubblejet printer and often prints direct (i.e.
  30033. not via a RISC­OS driver). He finds that if he makes the slightest
  30034. error, such as trying to print a non-existent file, when he next tries
  30035. to print, everything gets printed on one line. Does anyone have any
  30036. suggestions?
  30037. 6.6
  30038. BJ-330
  30039. 6.6
  30040. Tord Eriksson has had numerous difficulties printing on his Canon BJ330.
  30041. Using the LQ-860 driver is agonisingly slow (it makes four passes for
  30042. each line) and it sometimes gives stripes in graphics areas. He also had
  30043. a printer head (costing £200!) written off as a result of a “printout
  30044. crashing.” Also he finds that printing can abort before the job is
  30045. finished – if he uses 180×180 dpi there are no problems but with 180×360
  30046. or higher just part of the page gets printed. He comments that the
  30047. printer driver seems to work differently in that it now seems to
  30048. calculate the entire bitmap before starting printing and he wonders if
  30049. he now needs more than 4 Mbytes just to print an A4 page. Any hints or
  30050. tips would be very welcome indeed!
  30051. 6.6
  30052. Tord asks if there is any Archive reader who has tested the plotter
  30053. version of the BJ-330.
  30054. 6.6
  30055. Non direct drive laser printers
  30056. 6.6
  30057. Tord also asks for suggestions about laser printers that work well with
  30058. RISC­OS 3. Direct drive lasers are out of the question because all his
  30059. podule slots are full! What printer drivers exist for Canon laser
  30060. printers that use Canon’s own page description language? (How about the
  30061. Ace Pro-Driver for LBP4/8 at £44 through Archive?)
  30062. 6.6
  30063. Printing in the background
  30064. 6.6
  30065. Tord Eriksson says that the tip in Archive 6.3 p16 about having two
  30066. printer drivers loaded is impossible: if he loads a second !Printers the
  30067. first is erased. However, I think he has misunderstood the point: you
  30068. should only run !Printers once, but within that application you should
  30069. have two drivers loaded and active. (See p62 of the RISC­OS 3 User Guide
  30070. for details.)
  30071. 6.6
  30072. Keith Matthews spells out the procedure in more detail: you should drag
  30073. two copies of the appropriate printer driver into the Printer control
  30074. window of !Printers. Then click <menu> over the Printer control window,
  30075. choose the Connection option and connect the first driver to a suitable
  30076. file, then give the driver a name ending in ‘f’. The second copy should
  30077. be connected to the printer and named with a ‘p’. When the printer
  30078. manager is subsequently loaded, two icons appear: the first is selected
  30079. by default, so applications will “print” to the file. To produce hard
  30080. copy as a background task, just drag the file icon onto the “......p”
  30081. icon (you don’t need to select it first.) (I still maintain this is a
  30082. ridiculous palaver: why isn’t there a setup option whereby you can tell
  30083. the print manager to print first to a file and then automatically send
  30084. it to the printer?)
  30085. 6.6
  30086. Keith points out that (although he hasn’t tried queueing printouts) the
  30087. printer queue window provides one queue for each printer icon.
  30088. Obviously, print image files would have to be created under different
  30089. file names and you would need a hard disc to accommodate them all.
  30090. 6.6
  30091. LaserDirect and Turbo Driver news
  30092. 6.6
  30093. Michael Lowe has received a copy of version 2.09 of the LaserDirect
  30094. driver which has fixed the speckling problem (see Archive 6.5 pp30/31).
  30095. 6.6
  30096. Computer Concepts have also told both him and Dave Leckie that RISC­OS 3
  30097. drivers “are under development and might be available as early as April
  30098. but the amount of work involved shouldn’t be underestimated.” Presumably
  30099. these will handle rotated text and sprites and work under the RISC­OS 3
  30100. printer manager. (Dave Leckie notes, however, that CC have said that
  30101. they will not support RISC­OS 3.0.)
  30102. 6.6
  30103. Using a RISC­OS 3 driver after LaserDirect, etc.
  30104. 6.6
  30105. In Archive 6.5 p30 there was a tip that, in order to use a RISC­OS 3
  30106. driver after using a RISC­OS 2 driver such as LaserDirect, ArcLaser or
  30107. the Turbo drivers you should use the two * commands:
  30108. 6.6
  30109. RMKill PDriver
  30110. 6.6
  30111. RMReinit PDriver
  30112. 6.6
  30113. Maurice Edmundson has pointed out that a convenient place to put these
  30114. commands is in the !Run file of !Printers before the first of the
  30115. RMEnsure commands.
  30116. 6.6
  30117. Saving paper size settings
  30118. 6.6
  30119. Acorn have advised that there is a fault in RISC­OS 3.0 whereby, if you
  30120. alter the page sizes and save them, the new settings are not saved. The
  30121. work-around is to <shift-double-click> on !Printers then load the file
  30122. PaperRW into !Edit, manually change the settings then save the altered
  30123. file. This bug has been fixed in RISC­OS 3.10.
  30124. 6.6
  30125. First Word Plus driver for Deskjet 550C?
  30126. 6.6
  30127. Can anyone supply a printer definition file (Barry Thompson asks)?
  30128. 6.6
  30129. PC Emulator
  30130. 6.6
  30131. John Birchenough’s emulator, version 1.7, will only access the internal
  30132. drive A. Even when he makes the default drive B or C, the computer
  30133. insists on having a disc in drive A and then operates on the contents of
  30134. that drive. Also, it always asks for a disc to be inserted in B even
  30135. though it means A. He tried the patch supplied on the Support disc, but
  30136. that refused to work with a version higher than 1.6. He has also tried
  30137. changing his Config.sys file with variations of the Driver.sys and
  30138. Drivparm commands but to no effect. Can anyone help?
  30139. 6.6
  30140. Is RISC­OS 3 faster or slower?
  30141. 6.6
  30142. Some think one, some the other! A number of people have commented that
  30143. the machine seems to take longer to redraw the desktop screen or to go
  30144. through its initialisation routine. Relying on memory, it is obviously
  30145. difficult to tell. Raymond Wright says Pipedream 3.1 appears to take
  30146. longer to get spreadsheets loaded. He finds that, initially, he gets a
  30147. screen full of zeros which are slowly replaced by real data. (I wonder
  30148. if this is because of the way he has got it set up? Robert Macmillan
  30149. from Colton said – see Archive 6.3 p12 – that all versions from 3.10 on
  30150. work better in RISC­OS 3.) Raymond is sure that RISC­OS 2 was quicker
  30151. but he’s not going to reinstall it just to find out.
  30152. 6.6
  30153. Ken Gardner has, however, done just that. He did some controlled timings
  30154. before updating to RISC­OS 3.10 and reverted back to RISC­OS 2 to
  30155. confirm the anomaly that he found. The timings are as shown below
  30156. 6.6
  30157. For the tests, ADFS buffers were set to zero for both RISC­OS 2 and
  30158. RISC­OS 3.10. When Ken changed ADFSBuffers to 2K the time to read the
  30159. serial file fell from 48 secs to 19 secs but the Multistore random
  30160. access read only dropped from 176 secs. to 170 secs. This is a logical
  30161. result but it prompts Ken to ask why we have been instructed to set
  30162. ADFSBuffers to zero when this gives so much slower a result than in
  30163. RISC­OS 2. Can anyone tell us for sure whether there is a bug or not?
  30164. (Is there a danger of losing data if the Buffers are set to a non-zero
  30165. value?) (Yes, but only on a 1Mb machine. In 3.11, this has been improved
  30166. over 3.10. Ed.)
  30167. 6.6
  30168. Miscellaneous Hints & Tips
  30169. 6.6
  30170. How to avoid continual disc swapping,
  30171. 6.6
  30172. and more on !Scrap files
  30173. 6.6
  30174. Philip Woodward recommends that, on a floppy-disc only system, if you
  30175. have several discs for different classes of work and include a !Scrap
  30176. file on each, don’t forget to click on the !Scrap icon when you insert a
  30177. new disc. If you do forget, you will find that whenever you load a
  30178. printer driver, or try to print a drawing, the operating system will ask
  30179. you to insert some other disc which has no apparent relevance.
  30180. 6.6
  30181. Draw crashing
  30182. 6.6
  30183. Philip Woodward finds, like a number of others, that Draw crashes quite
  30184. frequently reporting an “address exception” error. Does anyone know if
  30185. there is anything he can do to avoid this? The error message goes on to
  30186. say:
  30187. 6.6
  30188. preserving files in <Wimp$ScrapDir>.Draw before exiting.
  30189. 6.6
  30190. This means that !Draw will attempt to save the work-in-progress as a
  30191. file called Draw in the scrap directory. (If it is successful, you will
  30192. be able to retrieve the file by opening that directory and double-
  30193. clicking on the drawfile icon to run !Draw again and load the file in –
  30194. after first making a backup copy of the file if it is important. To find
  30195. where the scrap directory is, press <ctrl-f12> to open a Task window and
  30196. type the command *Show Wimp$ScrapDir)
  30197. 6.6
  30198. Positioning drawings imported into Draw
  30199. 6.6
  30200. Philip Woodward has also found that, whereas in the RISC­OS 2 version of
  30201. Draw, one could superimpose a previous drawing (e.g. one saved on a RAM
  30202. disc) in exactly the position it originally occupied in the window by
  30203. setting the grid lock on and dragging the file onto the new drawing and
  30204. positioning the pointer at the bottom left of the window, this no longer
  30205. works. The minimum bounding frame of the old drawing is placed with its
  30206. bottom left corner at the mouse position, regardless of the original
  30207. position in the old drawing. To reproduce the RISC­OS 2 behaviour, you
  30208. have to put something, such as a dummy rectangle, at the bottom left
  30209. corner of the old drawing’s window.
  30210. 6.6
  30211. Alarm options
  30212. 6.6
  30213. Philip Woodward has pointed out that, if you include a line in your
  30214. !Boot file to set Alarm$Options, you must include % in front of each of
  30215. the -format parameters (see Applications Guide p137 for details). Also,
  30216. you must put the format string in quotes (which is not, perhaps,
  30217. emphasised sufficiently strongly in the Manual.) In both these respects,
  30218. it differs from Edit$Options, Draw$Options, etc.
  30219. 6.6
  30220. To illustrate the point, consecutive lines in !Boot might read:
  30221. 6.6
  30222. Set Alarm$Options -format “%w3 %z12:%mi %m3 %zdy”
  30223. 6.6
  30224. Set Edit$Options B12 M99 L1 D
  30225. 6.6
  30226. To get the Alarm$Options to take effect, you also have to choose the
  30227. “User defined” option in the Alarm setup window (choose the Setup...
  30228. option from the iconbar menu.) It’s not clear from the manual but I
  30229. assume that the choice of this option is saved in the CMOS RAM so
  30230. doesn’t have to be included in the !Boot file. It’s all a bit confusing,
  30231. isn’t it?
  30232. 6.6
  30233. Arm3 hare and tortoise icons
  30234. 6.6
  30235. I didn’t have enough time last month to try out Götz Kohlberg’s tip
  30236. (Archive 6.5 p33) about the hare and tortoise module. Now I have, and
  30237. I’m totally confused! Whatever combination of commands I use, I seem to
  30238. be unable to get the machine to boot up with the cache on without the
  30239. hare and tortoise swapping jobs. One thought I’ve had is that I might
  30240. swap the names of the hare and tortoise icons inside the !Arm3.!Sprites
  30241. file. (Another thought is that perhaps you’re meant to click on the hare
  30242. to get the machine to go faster, and that this never worked properly in
  30243. RISC­OS 2!) Help!
  30244. 6.6
  30245. Faster filer operations
  30246. 6.6
  30247. If you click <menu> over a filer operation window (e.g. the window that
  30248. pops up when you copy files which keeps you informed of progress) and
  30249. choose “Faster”, screen update will be less frequent and the filer
  30250. operation will be faster. (Marc Evans)
  30251. 6.6
  30252. Copying a large directory to floppy
  30253. 6.6
  30254. If you run out of space when copying a directory or application to a
  30255. floppy, insert a new disc, rename it with the same name as the full disc
  30256. and click on “Retry”. (Marc Evans) (Someone else has already suggested
  30257. that but when I tried it, it said “ambiguous filename”. Ed.)
  30258. 6.6
  30259. <Shift-select> on toggle size icon
  30260. 6.6
  30261. If you click <shift-select> on the toggle size icon, the window will
  30262. open as far as it can without obscuring the icon bar. (Marc Evans) (This
  30263. seems to depend on the application. Draw windows behave as described,
  30264. but Impression windows don’t.)
  30265. 6.6
  30266. False sprites on the Pinboard
  30267. 6.6
  30268. Marc Evans’ Pinboard seems to get confused over icon sizes and sprites
  30269. under certain conditions. For instance, it sometimes makes icons three
  30270. times bigger and uses the wrong sprites. Tord Eriksson says that in mode
  30271. 78 (from Computer Concepts NewModes?) some icons disappear, some hide
  30272. behind others and some appear twice; a single click on each one restores
  30273. peace, but should he have to? Has anyone else found this?
  30274. 6.6
  30275. Configured modes
  30276. 6.6
  30277. Marc Evans has found that *Configure Mode and *Configure Wimpmode seem
  30278. to be interlinked – whatever one is configured to the other one follows.
  30279. He used to have Mode configured to 0 to save memory when outside the
  30280. Desktop, but can’t anymore.
  30281. 6.6
  30282. Tord Eriksson had great problems until he discovered that you can’t
  30283. “configure” a non-standard mode. If you want to start up in, say, mode
  30284. 78 from the Computer Concepts Newmodes module, you have to include in
  30285. your !Boot file first a command to load the NewModes module then a
  30286. *WimpMode 78 command.
  30287. 6.6
  30288. Icon button types
  30289. 6.6
  30290. A comment for WIMP programmers is that when icons have the double click
  30291. flag set, they invert at the first click and group with adjust (like
  30292. Filer icons). To get around this, your program must trap for any icon
  30293. clicked on and unset the selected bit. (Marc Evans)
  30294. 6.6
  30295. Saving the configuration
  30296. 6.6
  30297. Mike Williams finds that the configuration file saved by !Configure
  30298. doesn’t cover all the things he needs to restore after having attempted
  30299. to run a rogue program that changes the configuration. He has therefore
  30300. built himself a command file containing all the *Configure commands
  30301. required to get back to normal plus *RMReinit commands for all the
  30302. modules. He created it by doing
  30303. 6.6
  30304. *Spool cfgfile
  30305. 6.6
  30306. *Status
  30307. 6.6
  30308. *ROMModules
  30309. 6.6
  30310. *Spool
  30311. 6.6
  30312. then editing the resulting file into the correct syntax and changing the
  30313. filetype to “Command”. (The pukka way of creating such a file is not to
  30314. use the pre-RISC-OS *Spool command, but to press <ctrl-f12> to open a
  30315. Task window, type Status, <return>, ROMModules and <return>, then press
  30316. <menu>, choose the “Unlink” option and save the contents of the Task
  30317. window.)
  30318. 6.6
  30319. Several years ago, Risc User published a program called !CMOS_Edit which
  30320. allows easy saving and reloading of all the CMOS settings. This seems to
  30321. work fine.
  30322. 6.6
  30323. Opening sub-menus automatically
  30324. 6.6
  30325. Richard Hallas has noticed that, if you choose the “Open submenus
  30326. automatically” configuration option, then if the pointer is resting to
  30327. the left of the “parent” menu item (in the space where a tick would
  30328. appear) when the submenu opens it appears on top of the parent menu
  30329. rather than to its right. Also, moving around a single menu with several
  30330. submenu pointers can have some peculiar effects: sometimes the submenu
  30331. pointers are ignored, and it is even possible to have two copies of the
  30332. same submenu open.
  30333. 6.6
  30334. Preventing access to !Configure and !Alarm
  30335. 6.6
  30336. Last month we gave the hint that you can prevent users from interfering
  30337. with the configuration by unplugging the !Configure module so that they
  30338. can’t access the !Configure application. In Acorn’s education newsletter
  30339. Arc, there is a hint that you can do the same with !Alarm.
  30340. 6.6
  30341. Opening a directory without booting
  30342. 6.6
  30343. Richard Hallas reports that, if you open a directory with <ctrl> held
  30344. down to stop the Filer executing all the !Boot files inside the
  30345. applications within the directory, then copying, renaming or deleting
  30346. files will cause the directory to be booted unless you remember to press
  30347. <ctrl> again.
  30348. 6.6
  30349. Also, if you open a directory with <ctrl> held down and then copy an
  30350. application out of it to another directory, then (assuming the Filer has
  30351. not already seen the !Sprites file for the application) a “!Sprites not
  30352. found” error will be reported. This doesn’t have any ill effects: it’s
  30353. just a nuisance.
  30354. 6.6
  30355. Various Matters Arising
  30356. 6.6
  30357. Screen blanker (Archive 6.4 p12)
  30358. 6.6
  30359. Keith Raven has found (in p163 of the User Guide) that *Blanktime sets
  30360. the time (in seconds) before the screen goes blank. *Blanktime 0 turns
  30361. the screen blanker off. (What I would like to know is: does the
  30362. operating system provide any easy means of firing up a graphical routine
  30363. as an alternative to the blank screen?)
  30364. 6.6
  30365. Shift key behaviour (Archive 6.5 p34)
  30366. 6.6
  30367. John Woodgate suggests that the £/¤ key may be acting as if it were
  30368. pressed as well as the <shift> key. He suggests cleaning with iso propyl
  30369. alcohol or proprietary switch cleaner. (For details on how to clean a
  30370. keyboard, see 5.1 p25. Ed.)
  30371. 6.6
  30372. Solid sprite dragging (Archive 6.5 p36)
  30373. 6.6
  30374. Barry Thompson writes that the way to turn this on is to use the *
  30375. command *FX162,28,3 (It seems really weird to me that a feature like
  30376. this, quite a selling point one would have thought, has been implemented
  30377. in such a half-hearted way!)
  30378. 6.6
  30379. Spaces in *Set commands
  30380. 6.6
  30381. Brian Fielding has found that whereas in RISC­OS 2 you could use spaces
  30382. in *Set or *SetMacro, RISC­OS 3.10 does not allow you to do so:
  30383. 6.6
  30384. SET PipeDream$Path ADFS::Dream_ file.$.,<PipeDream$Dir>.
  30385. 6.6
  30386. was permissible in RISC­OS 2 but you must use
  30387. 6.6
  30388. SET PipeDream$Path ADFS::Dream_ file.$.,<PipeDream$Dir>.
  30389. 6.6
  30390. in RISC­OS 3.10.
  30391. 6.6
  30392. Locked directories in ROM/RAM podule
  30393. 6.6
  30394. Brian Fielding also reports that if you create a New directory in
  30395. Computer Concept’s ROM/RAM podule, it creates the directory with a lock.
  30396. This lock cannot be removed and the directory can never be deleted
  30397. except by re-initialising the Podule.Other problems occur when copying
  30398. files into directories on the Podule but these can be ‘SKIPed’. He has
  30399. written to CC about this but they have no plans to alter the podule
  30400. software to work fully with RISC-OS3.  A
  30401.  
  30402. 6.6
  30403. Timings for various operations (RISC-OS 2 v RISC-OS 3.10)
  30404. 6.6
  30405.  
  30406. 6.6
  30407.       RISC-OS 2   RISC-OS 3.10   relative
  30408. speed
  30409. 6.6
  30410.       (secs)   (secs)   RO3.1 : RO2
  30411. 6.6
  30412. Read a serial file to a string array (50,000 items)   25.4
  30413.    48.4   half as fast
  30414. 6.6
  30415. Sort 50,000 strings (using Armsort)   8.0
  30416.    8.0   same
  30417. 6.6
  30418. load and sort a Multistore file (2,400 items):
  30419. 6.6
  30420.    load   166   176   slightly slower
  30421. 6.6
  30422.    sort   221   214   slightly faster
  30423. 6.6
  30424.    total   387   390   same
  30425. 6.6
  30426. Print a Draw file (with 32Kb buffer in printer)
  30427. 6.6
  30428.    release computer   500   239
  30429.    twice as fast
  30430. 6.6
  30431.    release printer   533   289
  30432.    twice as fast
  30433. 6.6
  30434. Mandelbrot (recalculate Clessidra)   90.3
  30435.    90.5   same
  30436. 6.6
  30437.  
  30438. Using RISC­OS 3.1
  30439. 6.7
  30440. Hugh Eagle
  30441. 6.7
  30442. I know that RISC­OS 3 has caused some problems, but to claim, as one of
  30443. my correspondents does, that the upgrade from RISC­OS 2 to RISC­OS 3 has
  30444. caused “more incompatibilities than the upgrade from 8-bit to 32-bit
  30445. machines” is taking things just a teeny bit too far. People will be
  30446. blaming Acorn for the performance of the England cricket team next!
  30447. 6.7
  30448. I have recently set up an A4000 from scratch. It comes with the
  30449. operating system and the RISC­OS 3 Apps already installed, and
  30450. everything is beautifully logical and straightforward. If you stick to
  30451. up-to-date software and use a standard printer in a straightforward way,
  30452. everything is perfectly simple to use. On the strength of this
  30453. experience, I have no doubt that, for new machines and new users,
  30454. RISC­OS 3 is a considerable step forward. (The A4000 Home Office also
  30455. comes with a good wordprocessor, Easiwriter, and with the very easy-to-
  30456. use Desktop Database installed and ready to run. It’s a very far cry
  30457. from my A310, which was configured to start up on the command line and
  30458. it took me two hours to find out how to get to the “desktop”!)
  30459. 6.7
  30460. As for us hardened upgraders, the question whether it was worth the
  30461. hassle is harder to answer. Perhaps Acorn should have waited until the
  30462. new operating system was more thoroughly tested before they released it,
  30463. but then they would have been criticised for keeping us waiting. Perhaps
  30464. they should have incorporated more radical improvements, but then the
  30465. incompatibility problems would doubtless have been far greater. In this
  30466. situation, they couldn’t win!
  30467. 6.7
  30468. Anyhow, rather than complaining, we should direct our thoughts towards
  30469. the changes we would like to see next time round. I am accumulating a
  30470. number of suggestions for the RISC­OS 4 wish list which I hope to come
  30471. back to in a future column; please let me know if you have any to add.
  30472. 6.7
  30473. Enough of the waffle, and on with the business ...
  30474. 6.7
  30475. I am afraid that, again, I haven’t had time or space to use all your
  30476. contributions. I will in due course. Many thanks for them all.
  30477. 6.7
  30478. Printing
  30479. 6.7
  30480. Paper X and Y offsets and margins
  30481. 6.7
  30482. This subject seems to have caused a lot of confusion, not least, I
  30483. imagine, because there is no reference to the Paper X and Y offsets in
  30484. the manual. (These were added after RISC­OS 3.0, I think, and seem to
  30485. postdate the manual, although they are mentioned briefly on page 20 of
  30486. the RISC­OS 3.10 Release Note.)
  30487. 6.7
  30488. Before I go any further, I feel I should point out that this is a
  30489. technical area that the vast majority of users (who are happy to use the
  30490. supplied drivers and page settings) never need bother about.
  30491. 6.7
  30492. The following explanation is based on contributions from Bruce Brown and
  30493. Tom Hughes and on some of the Read_Me files inside !Printers. It is also
  30494. based mainly on experience with HP Laserjets, although most of the
  30495. principles should apply equally to most other printers. I hope I have
  30496. got it right ...
  30497. 6.7
  30498. The purpose of the Paper X and Y Offsets is to tell the printer driver
  30499. which part of the paper the printer is physically capable of printing on
  30500. or, in other words, to define where the printer will print if it is told
  30501. to print at the top left corner of the paper. These are set via the
  30502. !PrintEdit application. The Top and Left Margins, by contrast, define in
  30503. which part of the paper the user wants graphics to be printed. These are
  30504. set via the Paper Size window in the !Printers application. (It is these
  30505. that determine where the grey border appears when you choose the “Show
  30506. paper limits” or “Show print borders” option in Draw, Impression, etc.)
  30507. 6.7
  30508. When the printer driver is asked to start printing at the top left
  30509. corner of the area defined by the margins: (1) first a printer reset
  30510. code is sent, then (2) the start of job codes are sent to the printer,
  30511. (3) the printhead (or the imaginary cursor in the case of a laser
  30512. printer) is told to move to the top left of the printable area (which,
  30513. if the X and Y offsets have been properly defined for the particular
  30514. printer, will be the same as the place which they define – i.e. point A
  30515. in the diagram below), (4) the printhead will then be moved down by
  30516. (Top margin − Y offset) and towards the right by
  30517. (Left margin − X offset) to point B, (5) the page will be printed.
  30518. 6.7
  30519. If either of the margins has been incorrectly defined to be less than
  30520. the equivalent offset, i.e. so that the formula in (4) gives a negative
  30521. result, it will be ignored and the cursor will not be moved at all in
  30522. that direction.
  30523. 6.7
  30524. How do you find out what the X and Y offsets should be? If it’s not
  30525. clear from your printer manual, the file called TopLeft in the Printers
  30526. directory on Applications disc 2 (together with the instructions in the
  30527. Read_Me file) might help. Alternatively, you could try deliberately
  30528. setting X and Y greater than the margins, so that the cursor movement in
  30529. (4) defaults to zero (as explained) and the top left of the image will
  30530. be printed at the default printhead position.
  30531. 6.7
  30532. Under RISC­OS 2 only the “margins” could be defined and, for practical
  30533. purposes, these had to be set to match the physically printable area.
  30534. One of the advantages of the new approach is that if you only want to
  30535. print on a small part of the page you can set very wide margins and the
  30536. printer driver won’t waste time trying to print nothing (i.e. lots of
  30537. white space) in the unused area.
  30538. 6.7
  30539. According to Archive 6.5 p37, Paul Skirrow has suggested setting
  30540. negative offsets to force the printer to start printing near the middle
  30541. of the page when, for instance, printing labels. Arithmetically this
  30542. will achieve the right effect, but not in the intended way! What you are
  30543. supposed to do is leave the X and Y offsets unchanged and increase the
  30544. margins.
  30545. 6.7
  30546. What will happen if you try to set the margins to less than the paper
  30547. offsets? Bruce Brown says you must not do so, because this will cause
  30548. the driver to send more data to the printer than it can handle on one
  30549. page. The Printers.Read_Me file says that if you do, and if you then try
  30550. to print something right up to the top left of the margins, the image on
  30551. the paper will be shifted down and to the right of where it is supposed
  30552. to be, since you have tried to get the printer to print on the section
  30553. of the paper that it physically cannot print on.
  30554. 6.7
  30555. The Printers.Read_Me file also notes that the paper offsets can be
  30556. negative. Apparently, the natural print position of some printers is
  30557. above the top and/or to the left of the top corner of the paper.
  30558. 6.7
  30559. Contrary to what has been said in this column before, you can apparently
  30560. set the X and Y offsets to zero.
  30561. 6.7
  30562. Owen Smith says: “You may be caught out by the way !PrintEdit stores the
  30563. paper offsets. Having changed the offsets in the main window, you then
  30564. have to open up every graphics resolution one by one and click OK in
  30565. each of them and then save the new printer definition file. This is
  30566. because the paper offsets are stored in the per graphics resolution data
  30567. (in pixels) and the graphics resolution data is encoded when OK is
  30568. clicked in the graphics window.”
  30569. 6.7
  30570. Background printing
  30571. 6.7
  30572. It doesn’t work – and that’s official!... I’ve been sent a copy of a
  30573. Technical Information news sheet from Acorn, which says: “The printer
  30574. buffer module supplied as part of RISC­OS 3 does not work correctly.
  30575. Even though the buffer has been configured to a large size, e.g. 2
  30576. Mbytes, the buffer module waits for the printer to complete its print
  30577. job before returning control to the user. Acorn is currently looking
  30578. into this problem and details will be made available if a fix is
  30579. produced.”
  30580. 6.7
  30581. Jochen Konietzko, however, wonders what all the fuss is about. He
  30582. writes: “On my machine, an A410/1 (ARM 3), with the Ace ProDriver and
  30583. the HP DeskJet 500C, there is no problem at all! All I have to do is
  30584. configure a sufficiently large printer buffer. I’ve just tried it again
  30585. and, with a buffer of 1Mb, I can work in a database with just a slight
  30586. reduction in speed.”
  30587. 6.7
  30588. The only reason I don’t use this option is that, unlike the font cache,
  30589. it is not possible to drag the task manager slider for the system heap/
  30590. stack below the limit set by the configuration of the buffer, so that
  30591. the memory is lost completely until a reset.
  30592. 6.7
  30593. My standard setting for the printer buffer is 128 Kb, because that does
  30594. not slow printing down (with a 1024 Kb buffer, printing takes about 25%
  30595. longer than at 4 Kb, even if I don’t touch the keyboard at all) and yet
  30596. I have a kind of “emergency multitasking”; at least, when I decide to
  30597. cancel an Impression printout, the button responds almost instantly.
  30598. 6.7
  30599. If I have to print several copies of a text, the print from a file is
  30600. better, anyway, because then the printer doesn’t try to hog all
  30601. available RAM.”
  30602. 6.7
  30603. Perhaps the reason he has no problems is that the Ace ProDriver doesn’t
  30604. use the Acorn buffer module.
  30605. 6.7
  30606. LaserDirect and TurboDrivers
  30607. 6.7
  30608. Computer Concepts say that version 2.09b is now available as a free
  30609. upgrade to registered owners, as an interim measure. This fixes a few
  30610. minor problems (e.g. the patterning effects and the problems with
  30611. sprites with palettes attached) but is not a full RISC­OS 3 version. “CC
  30612. have a team working on the printer drivers but the amount of work
  30613. involved should not be underestimated – it’s going to take a couple of
  30614. months yet.” (This was written on 11th February.)
  30615. 6.7
  30616. Printer driver space requirement
  30617. 6.7
  30618. Acorn advises that you can reduce the amount of disc space taken up by
  30619. !Printers by removing (if you have a dot matrix printer) the following
  30620. directories from within the !Printers directory: lj, ps and PDumpers.
  30621. 6.7
  30622. Checking if a printer is online
  30623. 6.7
  30624. Acorn also warns of a problem that sometimes affects programs originally
  30625. written for the BBC micro. If these use the command ADVAL(-4) to check
  30626. if a printer is on- or off-line, this can cause the computer to crash
  30627. because the program will not be able to understand the information
  30628. returned by the command.
  30629. 6.7
  30630. Problems with VDU2 printing
  30631. 6.7
  30632. Roger Power has used a Basic program for years, which now refuses to
  30633. print, causing the computer to hang as if the printer had not been
  30634. switched on. The program just has a VDU2 command to cause the screen
  30635. output to be sent to the printer and doesn’t use any printer driver. (I
  30636. wonder if this problem might be connected to the one mentioned in the
  30637. previous paragraph?)
  30638. 6.7
  30639. He then successfully printed a listing from Basic, using <Ctrl-B>, but
  30640. when he entered the command:
  30641. 6.7
  30642. VDU2:PRINT TAB(10,5)“Archive” :VDU3
  30643. 6.7
  30644. the word “Archive” was printed on the next line down in the first
  30645. column. In other words, the TAB was ignored.
  30646. 6.7
  30647. He has an HP Deskjet 500C. (He normally uses a ProDriver and has no
  30648. problems with that.)
  30649. 6.7
  30650. Richard Torrens uses Calligraph’s ArcLaser so doesn’t have a RISC­OS 3
  30651. driver installed. He also has a Basic program which uses VDU2 and worked
  30652. OK under RISC­OS 2, but now gives an error. He says the solution is to
  30653. type
  30654. 6.7
  30655. Unset PrinterType$1
  30656. 6.7
  30657. before entering the program (which doesn’t run in the desktop) and reset
  30658. on exit from the program.
  30659. 6.7
  30660. 1st Word Plus driver for Deskjet 550C
  30661. 6.7
  30662. Barry Thompson has an answer from Acorn to the question he posed last
  30663. month: since the Acorn JP150 printer is an HP Deskjet compatible, use
  30664. the 1st Word Plus driver supplied on the JP150 support disc. This driver
  30665. also works with Laserjets. This driver supports all the printing effects
  30666. from 1st Word Plus but will not support the printing of graphics.
  30667. 6.7
  30668. Programs That Work
  30669. 6.7
  30670. The following programs have been reported as working without any
  30671. problems:
  30672. 6.7
  30673. Fun School 4 (Under 5’s) – a new version works with RISC­OS 3
  30674. 6.7
  30675. Manchester United Europe (Peter Young’s son thinks the football plays
  30676. faster)
  30677. 6.7
  30678. Intersheet II
  30679. 6.7
  30680. Wordwise A Plus
  30681. 6.7
  30682. Mah Jong, The Game (the latest version – but Peter Young found that it
  30683. needed deleting from his hard disc and reloading before it would accept
  30684. keyboard input)
  30685. 6.7
  30686. Hard Disc Companion from Risc Developments (but Peter Young has found it
  30687. to be much slower)
  30688. 6.7
  30689. Thesaurus from Risc Developments
  30690. 6.7
  30691. Chess, CrossStar and Spell from David Pilling.
  30692. 6.7
  30693. It is interesting to observe that all but two of the programs that
  30694. Frances Obee asked about (Archive 6.5 p25) have been reported as working
  30695. fine. Of the other two: some problems with Atelier were mentioned last
  30696. month but I imagine that the publishers of a leading program such as
  30697. this must be able to supply a fix if one is needed; and Prime Art hasn’t
  30698. been mentioned at all and I imagine no news is good news.
  30699. 6.7
  30700. Dave Wilcox has sent in a huge list of games that work, which serves to
  30701. illustrate two points: first, that most programs do work and second,
  30702. that lists of this kind are likely to lead to contradictions since he
  30703. reports some programs as working which have previously been reported as
  30704. giving trouble.
  30705. 6.7
  30706. Rob Brown has begun compiling a database showing which programs work
  30707. (showing version numbers) and reporting compatibility problems that he
  30708. is aware of. So far, he has only included programs that he is familiar
  30709. with, and already the list is far too long to include in the magazine so
  30710. Paul is going to include it on the monthly magazine disc. If you have
  30711. anything to add to his database, his address is “Valtanee”, Brighton
  30712. Road, Lower Kingswood, Tadworth, Surrey, KT20 6UP.
  30713. 6.7
  30714. Program Problems
  30715. 6.7
  30716. David Holden has offered a couple of tips which may help you to get
  30717. programs working, especially demos − which seem to be the biggest
  30718. offenders.
  30719. 6.7
  30720. Many demos speed up the system ROMs so that they can run faster. If it’s
  30721. a Basic demo, try looking for:
  30722. 6.7
  30723. SYS “Update_MemC”,64,64
  30724. 6.7
  30725. If you find it, either remove it or ‘REM’ it out. This call won’t work
  30726. with RISC-OS 3 and will make the computer hang. Symptoms are a complete
  30727. lock-up − even the mouse pointer won’t move.
  30728. 6.7
  30729. Another is that the old minimum abbreviation for *CHANNELVOICE was
  30730. ‘*CHA.’ and for *BASIC ‘*BA.’. These no longer work and require more
  30731. letters to be properly identified. There is a utility on one of the
  30732. RISC-OS 3 Applications discs which is supposed to cure these problems
  30733. but his experience is that this doesn’t always work, so you might need
  30734. to actually change the program.
  30735. 6.7
  30736. David adds that RISC-OS 3 is also less tolerant of sloppy disc
  30737. identifiers, so filenames should always have a full filing system/path
  30738. name.
  30739. 6.7
  30740. He also says that many programs give problems when Acorn’s !Alarm
  30741. application is running. This seems to be denied by everyone at Acorn but
  30742. it is a fact that he has verified for himself. This applies to a lot of
  30743. commercial software as well, so it isn’t just a PD problem but something
  30744. that !Alarm is doing. If you normally use !Alarm then try again without
  30745. it. If that solves the problem there are plenty of PD equivalents.
  30746. 6.7
  30747. David also points out that many PD programs appear to be written in
  30748. machine code because, when you look in the application directory, you
  30749. see the ‘Application Code’ icon instead of a ‘Basic Code’ icon. However,
  30750. these programs are quite often not written in machine code or a compiled
  30751. language but have been disguised by a PD utility and are in fact Basic.
  30752. This doesn’t matter unless you want to make one of the changes described
  30753. above.
  30754. 6.7
  30755. To restore this type of code to normal Basic, first load it into Edit.
  30756. If you have RISC-OS 3 Edit, you just need to hold down SHIFT and double-
  30757. click on the program icon to do this, if not you will need to drag the
  30758. program icon to the Edit icon. Don’t do anything to the original, but
  30759. work on a backup copy in case anything goes wrong. Now look at the first
  30760. line of the program. If it is disguised Basic, you will see the words
  30761. ‘Basic -quit’ somewhere in this line. To change it back to normal Basic,
  30762. look for the first [0d] in the file − this will normally be at the end
  30763. of the first line. Delete everything up to but not including the [0d] so
  30764. that it becomes the first character in the file. Now re-save the file
  30765. and change its filetype to Basic (&FFB). If you now try reloading the
  30766. program into Edit (assuming you have the RISC-OS 3 version) you should
  30767. find that you have a normal Basic program to which you can make the
  30768. required changes.
  30769. 6.7
  30770. One cause of compatibility problems that I have found is that !SparkFS
  30771. is, by default, configured to use the system sprite area for workspace.
  30772. Some older programs expect to have this all to themselves. In these
  30773. cases, a simple *SNEW command can help to get the program running.
  30774. (Obviously you must first make sure that SparkFS has saved any work-in-
  30775. progress!)
  30776. 6.7
  30777. Dave Wilcox writes: “This is probably stating the obvious but, if you
  30778. have a hard disc system and normally boot up on the hard disc, it may
  30779. help to get games working properly if you configure the machine to Drive
  30780. 0 instead of the Hard Disc and press <reset>. Also, before starting to
  30781. play a game, it is a good practice to open the drive holding the !System
  30782. directory, so that it enters the !System path into memory. Also, with
  30783. some games, it may be necessary to switch off the cache for ARM 3.”
  30784. 6.7
  30785. Dave Wilcox also says that the following will NOT work under RISC-OS
  30786. 3.10:
  30787. 6.7
  30788. Powerband Mk2   (4th Dimension)
  30789. 6.7
  30790. Saloon Cars      (4th Dimension)
  30791. 6.7
  30792. Rotor      (Arcana)
  30793. 6.7
  30794. Fireball      (C.I.S.)
  30795. 6.7
  30796. Interdictor I (ver 1.01)   (Clares)
  30797. 6.7
  30798. Corruption      (Magic Scrolls)
  30799. 6.7
  30800. Thundermonk   (Minerva)
  30801. 6.7
  30802. Ibix the Viking   (Minerva)
  30803. 6.7
  30804. Brain Drain      (Minerva)
  30805. 6.7
  30806. Grid Lock      (Minerva)
  30807. 6.7
  30808. Freddy’s Folly   (Minerva)
  30809. 6.7
  30810. Superior Golf & Const. Set   (Superior
  30811. Software)
  30812. 6.7
  30813. Filing Systems
  30814. 6.7
  30815. No floppy or hard drive icons?
  30816. 6.7
  30817. Acorn advise: first of all, check that you have the correct number of
  30818. drives configured! Secondly, newer machines (A5000 onwards), on startup,
  30819. check to ensure that the configured drives are connected and if a drive
  30820. is not connected properly its icon may not be displayed − so check the
  30821. cable connections to the floppy drive.
  30822. 6.7
  30823. ICS IDE hard drive
  30824. 6.7
  30825. David Shepherdson found that, after he upgraded his A3000, his hard
  30826. drive didn’t work. Baildon Electronics, who are the service centre for
  30827. ICS, quickly fixed it. He adds, “In fact, as I also have a Calligraph
  30828. Laser Podule fitted, this also messed up my hard disc and Baildon fixed
  30829. that as well.”
  30830. 6.7
  30831. Watford 5¼“ interface
  30832. 6.7
  30833. Gordon Lindsay-Jones wrote to Watford (as Paul Beverley suggested) about
  30834. his problems with their buffer and has had no reply. He has come to the
  30835. conclusion that it does not work with RISC­OS 3.10! Can any readers help
  30836. by telling him which buffer(s) do work, please?
  30837. 6.7
  30838. SCSI filer
  30839. 6.7
  30840. Seán Kelly has discovered that his tip (Archive 6.5 p27) does not always
  30841. work. He writes: “Please allow me to apologise and to explain a proper
  30842. way to make the free space window work with SCSIFS.
  30843. 6.7
  30844. “Originally, I advised adding a command to load the new SCSIFiler module
  30845. to the desktop boot file. This did work, but only − I have since
  30846. discovered − because my desktop boot file was also creating a RAMFS
  30847. disc. This forced the initialisation of the replacement module.” He
  30848. suggests that the answer is to split the boot process into two stages so
  30849. that the SCSI filer is initialised before the desktop is entered. (Tim
  30850. Nicholson confirms this.)
  30851. 6.7
  30852. To do this first, rename the existing !Boot file as Deskboot, say, and
  30853. create an application directory called !Boot in the root directory and
  30854. move the Deskboot file into it. Then create an obey file called !Run
  30855. inside !Boot containing the following commands:
  30856. 6.7
  30857. RMLoad SCSI::4.$.!System.
  30858. 6.7
  30859. Modules.SCSIFiler
  30860. 6.7
  30861. Desktop -file <obey$Dir>. Deskboot
  30862. 6.7
  30863. (replacing 4 by the appropriate disc name).
  30864. 6.7
  30865. If you want to smarten up the appearance of the !Boot application, you
  30866. can copy the sprites file_fea and small_fea from Resources:$.Wimp.
  30867. Sprites into a !Sprites file inside !Boot and rename the sprites !boot
  30868. and sm!boot.
  30869. 6.7
  30870. The above is the approach which is also recommended on page 16 of the
  30871. RISC­OS 3.10 Release Note. An alternative way of achieving the same end
  30872. is (1) to rename the existing !Boot file (the one that contains all the
  30873. Filer_Boot and Filer_Run commands, etc) DeskBoot, say, (2) to copy it to
  30874. a safe place like the !System directory, (3) to create a new !Boot file
  30875. in the root directory, (4) to move into this new file the command to
  30876. RMLoad the SCSIFiler module and to add the command:
  30877. 6.7
  30878. *Desktop -file SCSI::4.$.!System.DeskBoot
  30879. 6.7
  30880. (replacing 4 by the appropriate disc name). To my mind, this way is
  30881. simpler because it avoids the necessity for creating sprite files,
  30882. renaming sprites, etc.
  30883. 6.7
  30884. The $.!Boot.!Run file (under the Kelly/Acorn approach) or the !Boot file
  30885. (under mine) can now also be used to load or initialise all sorts of
  30886. things before the desktop is started − e.g. extra mode modules, virus
  30887. protection, ROM speed up programs, etc.
  30888. 6.7
  30889. Miscellaneous Hints & Tips
  30890. 6.7
  30891. Newlines in !Run files
  30892. 6.7
  30893. P N Cousins says that if there is more than one linefeed at the end of
  30894. the !Run file of an application, if he tries “to use the menu button on
  30895. the icon” the machine locks up. I presume that he means that, if you
  30896. choose the Quit option on the iconbar menu, the application won’t quit.
  30897. This is something that I have noticed from time to time. (Invariably,
  30898. when it has happened to me, simply pressing <escape> has put things to
  30899. rights.) However, I have tried adding newlines galore to the ends of
  30900. !Run files without being able to repeat the phenomenon. Can anyone tell
  30901. us what is happening?
  30902. 6.7
  30903. On page 16 of the RISC­OS 3.10 Release Note there is a cryptic
  30904. instruction that you should not enter any newlines after the second line
  30905. in a particular two-line !Run file. I wonder if this is connected.
  30906. 6.7
  30907. Ian Hamilton says that, according to Acorn, Obey files with blank lines
  30908. aggravate what he calls a bug which can cause applications not to return
  30909. from their Obey files. He suspects that this may be the cause of the
  30910. problem that was blamed on Compression in Archive 6.5 p28.
  30911. 6.7
  30912. Newlines at the end of !Boot files
  30913. 6.7
  30914. P N Cousins also says that you must have a newline at the end of a !Boot
  30915. file or else the last line will be ignored. So, if you find that an
  30916. application which ought to be run by your !Boot file but isn’t, this
  30917. might be the answer.
  30918. 6.7
  30919. Hiding the Apps in Resources
  30920. 6.7
  30921. We have mentioned in a previous month that you can hide !Configure and
  30922. other ROM-based applications from prying eyes by typing *Unplug
  30923. !Configure (or whatever). Acorn advise that, if you do not want users to
  30924. see the Resources filing system, you can remove it from the iconbar by:
  30925. 6.7
  30926. *Unplug ResourceFiler
  30927. 6.7
  30928. Setting up an application
  30929. 6.7
  30930. Tim Powys-Lybbe offers the following hints based on how he sets up
  30931. applications (using Impression as an example).
  30932. 6.7
  30933. The technique I use is to construct an outer directory to hold (a) the
  30934. filer of work for the application and into which outer directory I also
  30935. place (b) the application as delivered from the supplier. I copy (c) the
  30936. !Sprite file from the application, give the outer directory the same
  30937. name as the application and make the !Run file do various things
  30938. including opening up the directory of working documents, the application
  30939. itself and then back up the working documents on exiting the
  30940. application. The !Boot file is more or less copied from the application
  30941. though you do need to choose a different system variable name for this
  30942. outer directory. (I just add Top to the application’s system variable
  30943. name for its directory.)
  30944. 6.7
  30945. I have had several problems getting this working on RISC-OS 3, though
  30946. the end result is far better as I now have control over where the
  30947. directories open on the desktop and I get a nice clean view of the
  30948. Impression start-up picture.
  30949. 6.7
  30950. 1. Extension of Filer_OpenDir command
  30951. 6.7
  30952. This command, which opens up a directory on the desktop, otherwise known
  30953. to Acorn as a filer, has been extended in RISC-OS 3 to allow you to
  30954. decide both where you want to place the filer on the desktop and how
  30955. large it is to be (the user guide gives details). For example, in the
  30956. !Run file, to open up Impression:
  30957. 6.7
  30958. Filer_OpenDir <ImpressTop$Dir>. Templates 1000 700
  30959. 6.7
  30960. This places the Templates filer with its top left at 1000 OS units
  30961. across the desktop from the left and 700 OS units up from the base line.
  30962. Acorn define 180 OS units as 1 inch on the screen though this must
  30963. presumably depend on the size of the monitor. You will have to
  30964. experiment with values for the directory position to get it where you
  30965. want on your desktop.
  30966. 6.7
  30967. You can add information about the width and height of the directory by
  30968. adding two more numbers:
  30969. 6.7
  30970. Filer_OpenDir <ImpressTop$Dir>. Templates 1000 700 1200 130
  30971. 6.7
  30972. The third number is the width of the directory and the fourth number is
  30973. its height. In mode 39, 130 OS units high just accommodates a single row
  30974. of the large icon size. (Isn’t the height of an icon, in screen units,
  30975. mode-independent?)
  30976. 6.7
  30977. 2. Opening an ArcFS directory
  30978. 6.7
  30979. I have had some correspondence with Mark Smith, the ever-helpful author
  30980. of this excellent package, and have at last found how to make ArcFS
  30981. directories open up from within the !Run file. It is done in two stages,
  30982. first:
  30983. 6.7
  30984. OpenArchive <ImpressTop$Dir>. Documents
  30985. 6.7
  30986. Documents is the name of an ArcFS archive that is stored within the
  30987. Impression outer directory. Note that ArcFS should already be on the
  30988. iconbar for this Open_Archive command to work as it is an ArcFS module
  30989. command; you can of course start up ArcFS from within this same !Run
  30990. file.
  30991. 6.7
  30992. The second command is:
  30993. 6.7
  30994. Filer_OpenDir ArcFS#Documents:$ 600 1400 1800 260
  30995. 6.7
  30996. The syntax is fairly obvious if you look at the top of the directory for
  30997. your archive once it is open!
  30998. 6.7
  30999. 3. Backing up to a floppy
  31000. 6.7
  31001. I have a little application tagged on to the end of the Impression !Run
  31002. file to cause a back up of the Documents archive after exiting
  31003. Impression (or any other application I hasten to add). With RISC-OS 2 it
  31004. would work with:
  31005. 6.7
  31006. *COPY <ImpressTop$Dir>.Docu-
  31007. 6.7
  31008. ments :0.Documents
  31009. 6.7
  31010. In RISC-OS 3 this produces an error and one must use instead:
  31011. 6.7
  31012. *COPY <ImpressTop$Dir>.Docu-
  31013. 6.7
  31014. ments ADFS::0.Documents
  31015. 6.7
  31016. Setting up Pinboard without a hard disc
  31017. 6.7
  31018. Brian Fielding has developed an interesting use of the Pinboard, which
  31019. he says is especially useful for those without a hard disc:
  31020. 6.7
  31021. After ‘playing’ with RISC-OS 3 for a few days and realising some of the
  31022. benefits of the PinBoard, which are obviously more beneficial if you
  31023. have a Hard Disc, I worked out a mechanism to fully utilise the PinBoard
  31024. so that, when the system was first booted, it would contain all the
  31025. applications I would want to access.
  31026. 6.7
  31027. The mechanism described below will display the Applications and when an
  31028. icon is double-clicked the appropriate disc will be requested and the
  31029. application will be loaded.
  31030. 6.7
  31031. This should be read in conjunction with Chapter 7 of the RISC-OS 3 User
  31032. Guide, “Desktop Boot Files”.
  31033. 6.7
  31034. Setting up pseudo-applications
  31035. 6.7
  31036. For each application you wish pinned to or loaded onto your pinboard,
  31037. set up a pseudo-application as follows:
  31038. 6.7
  31039. Copy the application, say !AppName, to an empty disc and, using <shift>
  31040. and double-click <select>, display the contents of the application.
  31041. 6.7
  31042. Delete all files and directories except !Boot, !Run and !Sprites.
  31043. 6.7
  31044. Edit !Boot to contain the four lines, in the order given:
  31045. 6.7
  31046. IconSprites <Obey$Dir>.!Sprites
  31047. 6.7
  31048. Set AppName$Dir ADFS::DiscName. $.!AppName
  31049. 6.7
  31050. Set Alias$@RunType_fff Run <AppName$Dir>.!Run %%*0
  31051. 6.7
  31052. Set File$Type_fff FileName
  31053. 6.7
  31054. AppName is the name of your application e.g. PipeDream
  31055. 6.7
  31056. DiscName is the name of the disc containing the original application.
  31057. 6.7
  31058. fff is the application’s FileType. (This line should be present in the
  31059. original !boot file. There may be other Alias$@RunType_fff lines and
  31060. these should also be left.)
  31061. 6.7
  31062. FileName is the Filetype name, e.g. PDream. (This is not essential.
  31063. Again there may be others and should be left if desired.)
  31064. 6.7
  31065. Note: <Obey$Dir> must only be used as a pathname to !Sprites. The full
  31066. pathname to the original Application must be established, including the
  31067. disc name.
  31068. 6.7
  31069. Edit !Run to contain (or create an Obey file):
  31070. 6.7
  31071. Run <AppName$Dir>.!Run
  31072. 6.7
  31073. Do not alter !Sprites. Copy !AppName to your Desktop Boot Disc. Add the
  31074. following lines to the !Boot file on your Desktop Boot Disc
  31075. ‘DskTopBoot’. (See note below if using a RAM disc.):
  31076. 6.7
  31077. Filer_Boot ADFS::DskTopBoot.$. !AppName
  31078. 6.7
  31079. Pin ADFS::DskTopBoot.$.!AppName 100 300
  31080. 6.7
  31081. 100 300 represents the position on the PinBoard. With the origin at the
  31082. bottom left of your screen, this represents 100 units to the right and
  31083. 300 units up. Your next application should be placed at 300 300. You
  31084. can, of course, pin your applications anywhere on the board.
  31085. 6.7
  31086. If you wish your application to be ready for use, use ‘Run ...’ instead
  31087. of ‘Pin ...’.
  31088. 6.7
  31089. RAM disc available
  31090. 6.7
  31091. Unfortunately, the above will require you to load the Boot disc each
  31092. time you load any application.
  31093. 6.7
  31094. If you have sufficient space available in memory, create a RAM disc of
  31095. at least 64Kb. You need, on average, 7 Kb per application.
  31096. 6.7
  31097. Prepare as above but copy your pseudo-applications to a directory, say,
  31098. PseudoApps, on your Boot Disc.
  31099. 6.7
  31100. You will then need to modify your !Boot file as follows:
  31101. 6.7
  31102. Ensure you have a large enough RAM disc.
  31103. 6.7
  31104. Change DynamicArea -RamFsSize 64K.
  31105. 6.7
  31106. Add the line
  31107. 6.7
  31108. COPY ADFS::DskTopBoot.$. PseudoApps.* RAM::RamDisc0. $.* ~CQR~V
  31109. 6.7
  31110. Modify both the Filer_Boot and the Pin (or Run) lines from
  31111. ‘ADFS::DskTopBoot’ to read ‘RAM::RamDisc0’.
  31112. 6.7
  31113. Notes
  31114. 6.7
  31115. Ensure that you have configured the system to boot from Disc by loading
  31116. your Boot disc and executing *Opt4,2 in command line mode.
  31117. 6.7
  31118. Some applications, e.g. Lemmings, are set up to delete RAM disc on
  31119. startup and tidy up when QUITed, e.g. UnSet Directories. These should be
  31120. altered:
  31121. 6.7
  31122. For Lemmings, the file !Lemmings.!Run should add | at the start of the
  31123. line TequeMen and Unset Lem$Dir.
  31124. 6.7
  31125. If memory is a problem, the amount of RAM space can be reduced by adding
  31126. a line Delete RAM::RamDisc0.!AppName.!Sprites after the corresponding
  31127. Filer_Boot line. This will approximately halve the required space.
  31128. 6.7
  31129. If you have sufficient RAM disc space, it would be helpful to place
  31130. !Scrap in it.
  31131. 6.7
  31132. ROM/RAM podule available
  31133. 6.7
  31134. If you have a ROM/RAM podule, with battery backup, then setting up the
  31135. pseudo-applications onto the RAM will make application selection much
  31136. more user-friendly.
  31137. 6.7
  31138. If you have a ROM/RAM podule, make this your Boot system. Simply follow
  31139. the above but change ‘ADFS::DskTopBoot.’ to ‘RFS:’ and remember, in
  31140. Command Line mode, to:
  31141. 6.7
  31142. *Configure FileSystem RFS
  31143. 6.7
  31144. *RFS
  31145. 6.7
  31146. *OPT4,2
  31147. 6.7
  31148. *ADFS
  31149. 6.7
  31150. Examples
  31151. 6.7
  31152. The monthly program disc has examples for disc, RAMDisc and for the ROM/
  31153. RAM podule.
  31154. 6.7
  31155. Matters Arising
  31156. 6.7
  31157. Backing up in one pass (Archive 6.5 p36)
  31158. 6.7
  31159. Put the following command in your !Boot file:
  31160. 6.7
  31161. Wimpslot -next 800K
  31162. 6.7
  31163. Solid sprite dragging (Archive 6.6 p61)
  31164. 6.7
  31165. (This gets even more bizarre!) Would you believe that, to turn sprite
  31166. dragging off, your new friendly operating system requires you to issue
  31167. the following commands?
  31168. 6.7
  31169. SYS “OS_Byte”,161,28 TO ,,R2
  31170. 6.7
  31171. R2=R2 AND 253
  31172. 6.7
  31173. SYS “OS_Byte”,162,28,R2
  31174. 6.7
  31175. (Thanks to David Shepherdson for that!)
  31176. 6.7
  31177. !CMOS_Edit: WARNING!
  31178. 6.7
  31179. Bruce Brown warns that, although !CMOS_Edit can be used as I mentioned
  31180. last month (Archive 6.6 p60) to save, load and view the CMOS RAM
  31181. effectively, if you use the Edit and Update feature, you will be in
  31182. trouble. This is because Acorn have now implemented the (previously
  31183. reserved) checksum byte at the end of the CMOS RAM. When you “Update”,
  31184. !CMOS_Edit will overwrite the correct value with the old incorrect
  31185. value. Since the checksum routine is relative, it will then always be
  31186. wrong until the power on/delete routine is performed. Until then,
  31187. whenever you startup, the operating system will find that the checksum
  31188. is wrong and will use default settings rather than those stored in the
  31189. CMOS.
  31190. 6.7
  31191. !CMOS_Edit is easily fixed to overcome this: look in the !RunImage
  31192. (Basic) file for the loop which writes the values to CMOS RAM and change
  31193. the loop counter from 0 TO 239 to 0 TO 238. Leave the loops for saving
  31194. and loading alone − they obviously must load and save everything as
  31195. previously.  A
  31196. 6.7
  31197. Hints and Tips
  31198. 6.7
  31199. •   Configuring the main Edit window − The RISC-OS 3 version of Edit makes
  31200. no provision for preferences concerning the size and the place on the
  31201. screen of a newly opened Edit window.
  31202. 6.7
  31203. However, this can easily be rectified. If you run Edit from your hard
  31204. disc, the Templates file can be edited according to taste. The nice
  31205. thing is that, even from the hard disc, Edit still occupies the same RAM
  31206. space (64 Kb on a 4 Mb machine).
  31207. 6.7
  31208. Here is what you do: drag the Edit application from the Apps directory
  31209. to your hard disc, click <menu> on the Apps icon, then <select> to open
  31210. the root directory, open the Resources directory and copy the three
  31211. files inside the Edit subdirectory into your new Edit application. (For
  31212. Acorn newcomers, you open an application directory by double clicking
  31213. while holding down <shift>.)
  31214. 6.7
  31215. Then drag the Templates file on to the iconbar icon of FormEd (an
  31216. application available from N.C.S. on Shareware 20) and drag the Text
  31217. window (the one which is filled with a web of diagonal lines) into the
  31218. desired position. Save the edited Template file.
  31219. 6.7
  31220. If you always use Edit, don’t forget to change your configuration so
  31221. that, after power-on, the correct version of Edit is loaded.
  31222. 6.7
  31223. Jochen Konietzko, Köln, Germany
  31224. 6.7
  31225. •   Faxpack − Did you know that if you manually dial 0336−400−445 and
  31226. then, at the prompt, select ‘Receive Fax’, you will receive a 24 Hour
  31227. Surface Forecast Chart from The Met. Office. It is very useful if you
  31228. want to know what the weather is going to do. Dial 0336−400−401 for the
  31229. Marine Index Page of all the forecasts and charts that are available.
  31230. Although it is a bit expensive (calls are charged at 36p per minute
  31231. cheap rate and 48p per minute at all others times) I find them
  31232. invaluable. This only works with FaxPack v2.00 − with earlier versions,
  31233. it causes “A Line Error occurred” fault. Steve Monks, Tobermory.  A
  31234. 6.7
  31235.  
  31236. Using RISC OS 3.10
  31237. 6.8
  31238. Hugh Eagle
  31239. 6.8
  31240. Encouragement for the faint-hearted!
  31241. 6.8
  31242. Peter Young says that he is not only electronically illiterate but also
  31243. notoriously clumsy and so he left fitting the upgrade for over three
  31244. months. When he finally did dare to do it, he found it a lot easier than
  31245. he had dreaded − he broke nothing and it all worked first time. The only
  31246. worrying bit was changing the links, because the diagram was not clear
  31247. but a quick call to the suppliers (Beebug) soon put him right. So his
  31248. advice for others is: don’t be scared!
  31249. 6.8
  31250. RISC OS 3.11
  31251. 6.8
  31252. Newer machines and upgrades are now being shipped with version 3.11 of
  31253. the operating system. Barry Thompson says that this clears up a NetUtils
  31254. problem which occurs when computers equipped with RISC OS 3.10 are used
  31255. on a network. The problem was that if you opened or extended a file
  31256. longer than 64Kb, anything beyond 64Kb was filled with null characters.
  31257. Existing network users can obtain a module (NetUtils) from their local
  31258. Acorn dealer.
  31259. 6.8
  31260. Comparing the 3.11 and 3.10 Release Notes, the only other differences I
  31261. could find were the following brief notes:
  31262. 6.8
  31263. •    DOS partition size – DOSFS cannot be used with DOS partitions of 32Mb
  31264. or larger.
  31265. 6.8
  31266. •    Acorn Lisp – you must issue a *FX 13,11 command before loading Acorn
  31267. LISP.
  31268. 6.8
  31269. •    Inspiration – versions of Inspiration up to 1.03 will not run with
  31270. RISC OS 3.10 or later.
  31271. 6.8
  31272. (I gather that 3.11 also improves the situation with the ADFSbuffers
  31273. problem. On a 1Mb machine with 3.10, you are still advised to set
  31274. ADFSbuffers to 0. This is no longer necessary with 3.11. Ed.)
  31275. 6.8
  31276. Programs that work
  31277. 6.8
  31278. Mah Jong, The Game: Peter Young reports that the problem he mentioned
  31279. last month was caused by an inappropriate *FX call which he had inserted
  31280. in the !Run file – so there seems to be nothing wrong with Mah Jong
  31281. itself.
  31282. 6.8
  31283. Hard Disc Companion: Peter Young says that setting an IDEFS cache (see
  31284. below) has speeded this up considerably.
  31285. 6.8
  31286. Ovation: In Archive 6.3 p14, we reported a problem with the printing of
  31287. indented lines from Ovation. Ken Cowap has now received a new version of
  31288. the program (version 1.37S) which, amongst other things, specifically
  31289. cures this particular problem. He says the problem turned out to be due
  31290. not to Ovation but to the RISC OS 3 printer drivers. Although Acorn
  31291. acknowledged this, they saw no immediate possibility of a fix, and Risc
  31292. Developments very commendably undertook to rewrite part of Ovation.
  31293. 6.8
  31294. Program problems
  31295. 6.8
  31296. Aldebaran: Atle Mjelde Bårdholt says that you must quit all application
  31297. tasks first (enter the Task display and Quit all tasks including
  31298. Pinboard), then run the game and it will install itself on the iconbar.
  31299. He says another solution is to exit the desktop and then type
  31300. *!Aldebaran at the command prompt. (Surely, Aldebaran is one of the most
  31301. recent games. Can it be true that it doesn’t run from the desktop?)
  31302. 6.8
  31303. Atle Mjelde Bårdholt also says that old Minerva games generally
  31304. reconfigure your machine. To avoid this, skip the !Boot file and click
  31305. on the next file in the sequence (e.g. in Hoverbod BS1 and in Missile
  31306. Control Title).
  31307. 6.8
  31308. Ralph Gibbons finds that Break147 doesn’t work and would like to know if
  31309. there is a fix.
  31310. 6.8
  31311. Mike Cook of Musbury Consultants repeats the point made by David Holden
  31312. last month: one reason older programs may not work is that the
  31313. abbreviations for some * commands have changed (e.g. *CHA. used to be
  31314. *ChannelVoice but is now *ChangeDynamicArea). Running the Obey file
  31315. Commands on the RISC OS 3 support disc is supposed to help but if that
  31316. doesn’t, he suggests editing the program. This affects the PD sample
  31317. player !DSedit and his own !Sample.
  31318. 6.8
  31319. Mike Cook also says that another change in the new operating system
  31320. resulted in the sampling part of his software not working. This also
  31321. affected the real time sound manipulator !Echo and the !Scope storage
  31322. oscilloscope. Any readers with the original programs can send him a disc
  31323. for a free upgrade. His address is 5 Helmshore Road, Haslingden,
  31324. Rossendale, Lancashire, BB4 4BG.
  31325. 6.8
  31326. Last month, we listed Powerband and Saloon Cars as not working. Rob
  31327. Brown says that Fourth Dimension can supply RISC OS 3 compatible
  31328. replacements (for £2 per program, he thinks).
  31329. 6.8
  31330. Don’t forget that Rob Brown would welcome any contributions to his
  31331. compatibility chart, periodic updates of which will be included on the
  31332. Archive monthly program disc. His address is “Valtanee”, Brighton Road,
  31333. Lower Kingswood, Tadworth, Surrey, KT20 6UP.
  31334. 6.8
  31335. Printing
  31336. 6.8
  31337. “VDU 2” printing
  31338. 6.8
  31339. David Holden says that, although VDU 2 printing still works with
  31340. RISC OS 3, it appears to monopolise the computer until printing is
  31341. finished. He has noticed that a couple of his programs that used to
  31342. multi-task, no longer do so and BBC emulator programs take a lot longer
  31343. to return control to the operator, even if using a printer buffer.
  31344. 6.8
  31345. Printer buffering
  31346. 6.8
  31347. Are the points in the previous paragraph perhaps connected to the non-
  31348. functioning of the RISC OS 3 printer buffer mentioned last month? Or are
  31349. there further problems? Has anyone got a fix for it or them? The
  31350. questions seem endless!
  31351. 6.8
  31352. Ralph Gibbons used to find a printer buffer routine (written by Anton
  31353. Calver and on Careware 5 & 7) very useful under RISC OS 2. Does Anton
  31354. read Archive? Has he updated his routine to run under RISC OS 3?
  31355. 6.8
  31356. BJ330
  31357. 6.8
  31358. In answer to Tord Eriksson’s plea (Archive 6.6 p56), Brian Cocksedge
  31359. recommends the Computer Concepts Turbo Driver (£53 through Archive).
  31360. This produces much quicker printouts. The printer should be set to IBM
  31361. emulation (he understands this gives a better quality printout). The
  31362. stripes in graphics areas are a feature of the BJ printers due to minor
  31363. mechanical errors in the feed mechanism and the momentum of the print
  31364. head.
  31365. 6.8
  31366. To print A3, as well as setting the paper size in the printer
  31367. preferences window, you have to tell the printer the size. Brian does
  31368. this by sending “Esc,C,99” to the printer via a small Obey file
  31369. containing the commands:
  31370. 6.8
  31371. *FX 138,27
  31372. 6.8
  31373. *FX 138,67
  31374. 6.8
  31375. *FX 138,99
  31376. 6.8
  31377. LaserDirect
  31378. 6.8
  31379. Steve Hutchinson experienced the same spurious lines that Roger King
  31380. reported in Archive 6.5 p31. He was told by CC that this was due to the
  31381. LaserDirect card not being happy in its podule slot. Rearranging podules
  31382. solved it for him.
  31383. 6.8
  31384. Photocopying via LaserDirect
  31385. 6.8
  31386. Tim Powys-Lybbe received version 2.09b of the LaserDirect software,
  31387. which cleared up the problems with print quality. However, his scanner
  31388. will now not do a photocopy at all, reporting (even with 3 Mb free) that
  31389. there is not enough free memory to do a photocopy. If he reverts to
  31390. version 2.05a, photocopying continues to work fine.
  31391. 6.8
  31392. Disc drives
  31393. 6.8
  31394. Speeding up an IDE drive
  31395. 6.8
  31396. After he upgraded to RISC OS 3, Peter Young initially found his IDE
  31397. drive (with a Beebug interface) to be very slow but eventually
  31398. discovered that setting an IDE cache speeded things up considerably. The
  31399. command to set it is:
  31400. 6.8
  31401. *Configure IDEFSDirCache 16k
  31402. 6.8
  31403. Before he created the cache, Peter was getting strange messages like dir
  31404. “@” not found when he specified directories at the command line with
  31405. references like $.xxx... rather than IDEFS:: IDEDisc4.$.xxx.... Since he
  31406. is now religiously using full pathnames, he doesn’t know whether
  31407. creating the cache might have solved the problem.
  31408. 6.8
  31409. Peter says he still doesn’t really know whether what he wants is a cache
  31410. or a buffer. Can anyone throw any light on exactly what they do and what
  31411. the optimum sizes are for each in different circumstances? (Since
  31412. configuration options are provided, presumably one is expected to use
  31413. them, but when and how?)
  31414. 6.8
  31415. SCSI discs
  31416. 6.8
  31417. Andrew Shell encountered the same problems as Philip Lardner (Archive
  31418. 6.6 p56) with copying, moving or deleting files to, from, or in the root
  31419. directory. By resetting his configuration so that *Status reads:
  31420. 6.8
  31421.     SCSIFSDirCache     16k
  31422. 6.8
  31423.     SCSFSdisks         1
  31424. 6.8
  31425.     SCSIFSDrive        4
  31426. 6.8
  31427.     File System    SCSI
  31428. 6.8
  31429. (and using !Configure to set “SCSI hard discs” to 1) he thought he had
  31430. solved the problem. All now seems to work correctly so far as saving,
  31431. copying and deleting are concerned. However, when he tried the Find
  31432. command on the !FONTS directory he got a sequence of finds reading
  31433. “...!Boot.!FONTS”, “...!Boot.!FONTS.!FONTS”, ... ,
  31434. “.....!FONTS.!FONTS,!FONTS”, etc. He also had a similar problem with the
  31435. Stamp command. Does anyone have any solutions?
  31436. 6.8
  31437. SCSIFiler and Set Alias$Free
  31438. 6.8
  31439. Following the hints in past months involving these, P. N. Cousins would
  31440. like to know: what is the SCSIFiler module for and how does the Set
  31441. Alias$Free hint (Archive 6.5 p27) work?
  31442. 6.8
  31443. Tim Nicholson has noted that using the SCSIFiler module (as recommended
  31444. in Archive 6.7 p44 and elsewhere) has the added advantage that it gives
  31445. the interactive window for Verify and reads the disc name at start-up
  31446. and shows the name under the iconbar icon.
  31447. 6.8
  31448. 5¼“ drive interfaces
  31449. 6.8
  31450. Gordon Lindsay-Jones has found, with the help of his dealer, a
  31451. replacement for his Watford interface: the one from Risc Developments
  31452. works and is, he feels, a superior product. Apart from other advantages,
  31453. it has seven switches with which to set the external drive
  31454. configurations and comes with instructions on the settings required.
  31455. 6.8
  31456. D. S. Allen and Philip Foster have both written to say that the Watford
  31457. interface can be fixed by cutting some wires! D. S. Allen knows of “two
  31458. people that have cut the right hand two wires (as viewed facing the
  31459. computer front) of the cables from the Watford board to the computer
  31460. board and also the one from the Watford board to the internal disc
  31461. drive. Both drives work all right after this.” Philip Foster describes
  31462. the solution as “cutting through the two end wires (furthest from the
  31463. red marker wire and next to the 20 pin removable PAL ROM) of the ribbon
  31464. cable running from the mother board to the interface board.” He adds
  31465. that “as this is clearly a somewhat irreversible act” he would suggest
  31466. ringing Watford to confirm before you do it.
  31467. 6.8
  31468. Miscellaneous hints and tips
  31469. 6.8
  31470. Use of the Copy key
  31471. 6.8
  31472. Richard Torrens writes: “We all know that, in a writable icon, <Copy>
  31473. deletes the character to the right of the caret. Did you know that
  31474. <Shift-Copy> deletes to the end of the current word and <Ctrl-Copy>
  31475. deletes to the end of the current line?”
  31476. 6.8
  31477. How much space for a desktop program?
  31478. 6.8
  31479. P. N. Cousins would like to know how you know how much memory you need
  31480. to use when writing programs that run under the desktop. In my
  31481. experience, allocating too small a WimpSlot can lead to some most
  31482. perplexing error messages, so I would certainly like to know if there is
  31483. a foolproof answer. My solution is trial and error: first I estimate how
  31484. much space is needed for the program code plus variables and workspace
  31485. for sprites, etc, then I set the WimpSlot somewhat larger than my
  31486. estimate and repeatedly reduce it (32Kb at a time) until the program
  31487. crashes. Not very scientific, but it generally works.
  31488. 6.8
  31489. Miscellaneous
  31490. 6.8
  31491. All these hints are from Rob Davison:
  31492. 6.8
  31493. I have a couple of lines in my application !Run files like this...
  31494. 6.8
  31495. SET Titler$RiscOs3 yep
  31496. 6.8
  31497. RMENSURE UtilityModule 3.10 SET Titler$RiscOs3 nope
  31498. 6.8
  31499. ...and near the start of !RunImage, something like the following:
  31500. 6.8
  31501. DIM block% &C00
  31502. 6.8
  31503. SYS “XOS_GSTrans”,“<Titler$RiscOs3>”,block% ,&C00 TO,,l%
  31504. 6.8
  31505. block%?l%=&0D
  31506. 6.8
  31507. IF $block%=“yep” THEN newos%= TRUE ELSE newos%=FALSE
  31508. 6.8
  31509. SYS“XOS_CLI”,“UNSET Titler$RiscOs3”
  31510. 6.8
  31511. •    There are several other configuration options which are not accessible
  31512. in !Configure that allow you to setup your system more exactly in the
  31513. area of double-click delays, etc.
  31514. 6.8
  31515. One of the more interesting ones which may be useful to those people who
  31516. are new to RISC OS, is WimpMenuDragDelay which sets the time in 1/10
  31517. second units for which menu activity is disabled after a menu has been
  31518. automatically opened. This enables the pointer to move over other menu
  31519. entries without cancelling the submenu. To change it, you need to use
  31520. the command line (remember that thing?) Syntax:
  31521. 6.8
  31522. *Configure WimpMenuDragDelay <delay>
  31523. 6.8
  31524. •    There is an in-built rolling credit list of all the people involved in
  31525. the creation of the Operating System. It is accessed by bringing up the
  31526. ‘info’ dialog box for the operating system (accessible from the task
  31527. manager menu) and clicking with <menu> on the characters ‘t’ ‘e’ ‘A’ and
  31528. ‘m’ in that order in the string ‘© Acorn Computers Ltd 1992.’ If nothing
  31529. happens after a couple of seconds, re-open the menu and try again.
  31530. 6.8
  31531. (Click with <menu>? − that’s against Acorn’s guidelines surely?!)
  31532. 6.8
  31533. However, if you just bring up the dialog box and click <menu> off any of
  31534. the icons (e.g. on the grey window background) then the Task Manager
  31535. aborts and the only way to recover a normal machine is to press <ctrl-
  31536. reset>. (Oops!)
  31537. 6.8
  31538. Boot-up options
  31539. 6.8
  31540. An item on Peter Young’s wish list for RISC OS 4 is the ability to call
  31541. different !Boot sequences by pressing user-defined keys at power-on. I
  31542. agree that it would be useful to have this built into the operating
  31543. system. However, it is already quite easy to achieve a similar result. I
  31544. know that some people find Ian Copestake’s !TWO very useful for this
  31545. purpose. Alternatively, you can “do it yourself” without too much
  31546. difficulty. Assume, for example, that you have saved two Desktop boot
  31547. files called Plain and Fancy in a directory called BootFiles. Then
  31548. create a Basic file in the root directory called !Boot reading as
  31549. follows:
  31550. 6.8
  31551. CLS
  31552. 6.8
  31553. PRINT‘’“Choose one of the
  31554. 6.8
  31555. following sets of
  31556. 6.8
  31557. Boot-up preferences“‘’
  31558. 6.8
  31559. PRINT“   1.  Plain”
  31560. 6.8
  31561. PRINT“   2.  Fancy”
  31562. 6.8
  31563. PRINT‘’“Type 1 or 2”
  31564. 6.8
  31565. A$=GET$
  31566. 6.8
  31567. CASE A$ OF
  31568. 6.8
  31569.  WHEN “1”:OSCLI(“Desktop -File $.BootFiles.Plain”)
  31570. 6.8
  31571.  WHEN “2”:OSCLI(“Desktop -File $.BootFiles.Fancy”)
  31572. 6.8
  31573.  OTHERWISE: OSCLI(“Desktop”)
  31574. 6.8
  31575. ENDCASE
  31576. 6.8
  31577. There are numerous variations on this theme. You can use negative INKEY
  31578. values to test for a key being held down rather than waiting for a
  31579. keypress with GET$. If you like, you can put Plain and Fancy in, say,
  31580. the !System directory instead of creating a new directory, or you can
  31581. rename the Basic file !Run, create a directory called !Boot and move
  31582. !Run into it along with Plain and Fancy.
  31583. 6.8
  31584. Obviously, you can adapt this idea to suit your purposes, but beware of
  31585. pressing R or <Delete> when you switch the computer on, since these will
  31586. reset your configuration!
  31587. 6.8
  31588. Splitting the boot sequence into two parts like this was recommended
  31589. last month for making sure that the SCSIFiler module is properly
  31590. installed before the desktop is initialised.  It also opens up a number
  31591. of other possibilities....
  31592. 6.8
  31593. It has always seemed to me that the usefulness of the facility for
  31594. automatic saving of desktop boot files is limited (a) because they tend
  31595. to get cluttered up with unnecessarily opened directories and booted
  31596. applications, and (b) because they omit necessary things like virus
  31597. protection modules, extra screen modes, etc. Problem (a) can be reduced
  31598. by making sure that you only open those directories that you want open
  31599. and boot those directories that you want booted before you save the
  31600. desktop boot file (the equivalent of Plain or Fancy in the above
  31601. example); (b) can be solved by following the two-stage approach and
  31602. putting the more technical bits in a hand-crafted pre-desktop !Boot
  31603. file, which you will probably not want to change very often, while the
  31604. desktop boot file is left simply to run applications, open directories
  31605. and fire up the pinboard.
  31606. 6.8
  31607. So far as I can see, you will still need to do some hand-editing of the
  31608. desktop boot file if you want a non“-RISC OS 3 aware” application to be
  31609. booted or run automatically. Alternatively, you can get an application
  31610. to auto-boot by having the desktop boot file automatically open the
  31611. directory that the application is in. Furthermore, you can get the
  31612. application to run automatically by editing its own !Boot file to run
  31613. the !Run file.
  31614. 6.8
  31615. Tim Nicholson notes that you must also split the boot sequence into two
  31616. parts if you want to follow the suggestion in the March Acorn User for
  31617. altering the desktop initialisation banner.
  31618. 6.8
  31619. In Archive 6.5 p33, Colin Singleton reported problems with trying to
  31620. switch from one “world” to another by double-clicking on a second boot
  31621. file. He has concluded that you must reset the computer first, since
  31622. running the second boot file doesn’t clear memory first: it simply tries
  31623. to add the applications listed in it to those that are already running.
  31624. 6.8
  31625. Finally, to end this section on boot files, a quote from Colin
  31626. Singleton, with whom I have a lot of sympathy: “The autoboot facility is
  31627. not much use if it does only half the job. I need to be able to
  31628. understand what it has produced and to patch it up accordingly. I might
  31629. as well carry on using my old boot file, which is what I am doing. The
  31630. new feature is useless (and very confusing) for those users who do not
  31631. know how to build a boot file. Perhaps in time all software will be
  31632. ‘aware’ of boot files, then the feature will be useful.”
  31633. 6.8
  31634. ARM3 too fast for Watford scanner (?)
  31635. 6.8
  31636. Mr A. Shell found that, after he upgraded to RISC OS 3 and installed an
  31637. ARM3, his Watford Electronics Hand Scanner 1990, Issue 2 (using a Geni
  31638. Scan-4500) stopped working. However, he has found that after entering
  31639. the command *Cache off, the scanner works perfectly. When the scanning
  31640. is finished, *Cache on  speeds the processing up.
  31641. 6.8
  31642. Zooming in Draw
  31643. 6.8
  31644. When I acquired Artworks, I thought one of its neatest features was the
  31645. ability to use the mouse to mark the area into which you want to zoom.
  31646. Now, I have found while reading the manual (Applications Guide p48) that
  31647. Draw does just the same – in fact, it goes one better, because you don’t
  31648. need to select a zoom tool first, you just hold down <shift> and drag
  31649. with <adjust>. To return to your previous scaling you use <Ctrl-R>; the
  31650. manual also describes various other hot-key combinations to adjust the
  31651. scaling.
  31652. 6.8
  31653. Turning CapsLock off
  31654. 6.8
  31655. Peter Young has a few old, and some not so old, programs which will only
  31656. take upper case input, and putting *FX202,1 into the !Run file meant,
  31657. with RISC OS 2, that he didn’t have to remember to press capslock first.
  31658. In RISC OS 3, this call seems to turn off keyboard input entirely,
  31659. though it occasionally produces input different from what is typed for a
  31660. couple of presses before it crashes the machine.
  31661. 6.8
  31662. I think, if I have interpreted the Programmers’ Reference Manual
  31663. correctly (pages 511-512 in the RISC OS 2 manual), that the correct code
  31664. to turn capslock off while leaving the other keyboard settings unaltered
  31665. is *FX 202,16,239; the command *FX 202,16 will turn capslock off but may
  31666. alter some of the other settings.
  31667. 6.8
  31668. What *FX 202 does is to alter the “keyboard status byte”. If the command
  31669. is given in the form *FX 202,R1,R2 then R2 controls which bits of the
  31670. status byte are changed and R1 supplies the new bits. In technical
  31671. terms, the new value of the status byte is made equal to
  31672. 6.8
  31673. (the old value AND R2) EOR R1
  31674. 6.8
  31675. Therefore, to force a particular bit in the status byte to adopt value n
  31676. (either 0 or 1) you leave that bit unset in R2 and made equal to n in
  31677. R1; to leave a bit unchanged you set it in R2 and unset it in R1.
  31678. 6.8
  31679. Capslock is controlled by bit 4 (the one with value 16), so to set it
  31680. (thus turning capslock off) you use the values 239 (= 255 minus 16) and
  31681. 16 for R2 and R1 respectively.
  31682. 6.8
  31683. The shortened form of the command, *FX 202,R1 has the same effect as *FX
  31684. 202,R1,0
  31685. 6.8
  31686. (It’s not clear to me why *FX 202,1 should have worked either in
  31687. RISC­OS 2 or on the BBC.)
  31688. 6.8
  31689. Editing !Run files
  31690. 6.8
  31691. Peter Young asks if one is allowed to amend the !Run files of commercial
  31692. programs. My answer is that there is no reason at all why you shouldn’t,
  31693. so long as you know what you are doing. You could, for instance, include
  31694. a command to turn capslock off (see above) or a command to run a printer
  31695. driver automatically. Some programs allow you to change preferences by
  31696. setting up system variables in the !Run file. In RISC OS 2, some people
  31697. even amended the !Run file of Acorn’s !Edit to make it run on a system
  31698. with lots of fonts.
  31699. 6.8
  31700. ROM Speed
  31701. 6.8
  31702. Seán Kelly writes that the old ROM speed up trick still works on some
  31703. computers with RISC OS 3.1. On an Archimedes, the ROM speed can be read
  31704. with the following Basic lines:
  31705. 6.8
  31706. SYS “OS_UpdateMEMC”,0,0 TO R%
  31707. 6.8
  31708. PRINT (R% AND &C0) DIV &40
  31709. 6.8
  31710. The lowest speed is 0, the highest 2 − the MEMC data sheet defines a
  31711. value of 3 as ‘not meaningful’ although it appears to have the same
  31712. effect as 2. The speeds are not absolute, but depend on the computer’s
  31713. memory clock speed. On old A440, RISC OS 3.1 selects a value of 2, so no
  31714. speed up is possible, but on an A5000, a value of 1 is set by RISC OS
  31715. 3.1 and changing this to 2 increases the machine’s speed by about 5%.
  31716. 6.8
  31717. The ROM speeds can be set by using:
  31718. 6.8
  31719. SYS “OS_UpdateMEMC”,&00,&C0: REM slowest, speed 0
  31720. 6.8
  31721. SYS “OS_UpdateMEMC”,&40,&C0: REM speed 1
  31722. 6.8
  31723. SYS “OS_UpdateMEMC”,&80,&C0: REM fastest, speed 2
  31724. 6.8
  31725. These lines are included as programs on the monthly program disc,
  31726. together with the short program called ACK which, on Seán’s un-sped-up
  31727. A5000, executes in about 1 second. Double-clicking on one of the speed
  31728. changers followed by ACK will show how the different speeds affect your
  31729. computer. An A5000 appears to run at speed 2 with no problems. Program
  31730. Speed2 can be automatically run by !Boot, providing a slight performance
  31731. boost to A5000s.
  31732. 6.8
  31733. RMFaster-ing
  31734. 6.8
  31735. Seán Kelly also reports that *RMFaster on certain modules, such as
  31736. Basic, can produce a useful increase in speed for applications that read
  31737. the ROM a lot. Without an ARM3, the speed increase can be very large −
  31738. with the cache off, he has found Basic programs that run over 30% faster
  31739. with Basic in RAM. With the cache on, the increase tends to be about 5%,
  31740. so RMFaster-ing on an ARM3 machine is really a waste of memory unless
  31741. time is really important.
  31742. 6.8
  31743. Interestingly, both ROM speed-ups and RMFaster-ing only produce a slight
  31744. speed increase, typically 5%, on an ARM3 machine. This appears to show
  31745. that the cache’s hit rate is very high.
  31746. 6.8
  31747. Also on the program disc ...
  31748. 6.8
  31749. Also on the monthly program disc are a number of utilities from Rob
  31750. Davison: SmoothM – a relocatable module which averages mouse coordinates
  31751. and is ideal for use in pixel-based art packages such as Paint or
  31752. Artisan. To use it, double click on the module and enable averaging with
  31753. the command *SmoothON. To restore normal use, enter the command
  31754. *SmoothOFF. This module is public domain and is, in fact, based on an
  31755. article which appeared in Archive 1.5 (February 1988) by Malcom
  31756. Banthorpe.
  31757. 6.8
  31758. SolDrag and NormDrag are short programs to turn solid sprite dragging on
  31759. and off.
  31760. 6.8
  31761. Tools and 22Sprites are modified toolsprites and high resolution icon
  31762. sprites.
  31763. 6.8
  31764. Some Bugs
  31765. 6.8
  31766. First, from Rob Davison:
  31767. 6.8
  31768. There are quite a number still in the operating system. Most are very
  31769. obscure, but some are quite serious and one may be slightly embarrassing
  31770. to Acorn! Hopefully, they will do a ‘RISC OS 3 Extras disc’ to fix the
  31771. more important ones.
  31772. 6.8
  31773. •    Impression style icons − There is a serious bug in this part of the
  31774. window manager. If the application you are writing uses a dialog box
  31775. similar to the in-built applications (e.g. Edit) when quitting, but
  31776. including the new style icons, the operating system reports an abort on
  31777. Data transfer after the application has quit. The solution is to close
  31778. and delete all windows yourself and call Wimp_Poll enough times to
  31779. ensure that they have all gone before quitting.
  31780. 6.8
  31781. •    Paint − Load the application and repeatedly create 256 colour sprites
  31782. of 128x64 pixels. Paint bombs (usually) when the sixth sprite is created
  31783. with an ‘Unrecoverable internal error SpriteExtend: Bad pixel
  31784. translation table’.
  31785. 6.8
  31786. The only good point is that your file is preserved in Wimp$ScrapDir
  31787. before Paint dies.
  31788. 6.8
  31789. The problem mentioned in Archive, where the name in the save dialog box
  31790. is corrupted in some circumstances, still exists.
  31791. 6.8
  31792. •    !Edit − This is a fairly worrying one (R. W. Darlington has found
  31793. similar problems). Edit has had the same bug since its first release in
  31794. RISC OS 2.00. Sometimes, the text window is not redrawn properly and the
  31795. caret can appear to be on a different line. Text is deleted or inserted
  31796. at the wrong place and it can sometimes be quite a while before you
  31797. realise what is going on. I encounter this problem much more now because
  31798. of the excellent facilities for editing Basic programs. If Acorn can’t
  31799. get windows to redraw correctly in all circumstances, what chance do the
  31800. rest of us have? (Quick fix: press <f12>, <return>, <return> before
  31801. doing any major editing.)
  31802. 6.8
  31803. •    Operating system bugs − I have one (and only one) 800Kb ‘E’ format
  31804. disc which works and verifies fine on RISC OS 2.00 whereas RISC OS 3.00
  31805. and 3.10 absolutely refuse to look at it and tell me ‘Disc not
  31806. formatted’.
  31807. 6.8
  31808. I have managed to get the dreaded ‘Abort on Data transfer’ while using
  31809. interactive file copying but only under extreme provocation. It was much
  31810. more common in 3.00!
  31811. 6.8
  31812. There is another problem where, if you set the MOUSE RECTANGLE to allow
  31813. the pointer off the left of the screen and then record button clicks,
  31814. the y-coordinate is set to −1 with the first returned button click. E.g.
  31815. 6.8
  31816. *POINTER 1
  31817. 6.8
  31818. MOUSE RECTANGLE -1000,-1000,2000 ,2000
  31819. 6.8
  31820. MOUSE TO 100,500
  31821. 6.8
  31822. REPEAT
  31823. 6.8
  31824. MOUSE x%,y%,b%
  31825. 6.8
  31826. PRINTTAB(0,0);“x=”;x%;“  ”
  31827. 6.8
  31828. PRINTTAB(0,1);“y=”;y%;“  ”
  31829. 6.8
  31830. PRINTTAB(0,2);“b=”;b%;“  ”
  31831. 6.8
  31832. UNTIL b%<>0
  31833. 6.8
  31834. END
  31835. 6.8
  31836. Run this and move the pointer off the left of the screen. Click a button
  31837. and the displayed y coordinate changes to −1 regardless of the last
  31838. position. (The solution is to do another mouse read immediately after
  31839. the UNTIL and use the values returned from that.)
  31840. 6.8
  31841. Next, from Seán Kelly:
  31842. 6.8
  31843. !Paint has two bugs related to deleting rows and columns in sprites. The
  31844. first is that when columns to delete are selected by dragging right with
  31845. the mouse, it is not possible to delete the rightmost column of the
  31846. sprite (no matter how far it is zoomed in). The second is that, when
  31847. dragging rows to delete downwards, the topmost row (where the operation
  31848. was started) is not deleted.
  31849. 6.8
  31850. If there is data in the RAM filing system, RISC OS 3.1 complains if you
  31851. attempt to leave the desktop by selecting EXIT from the task manager
  31852. menu, although the RAMFS is not affected.
  31853. 6.8
  31854. Sometimes, a RAMFS filer window stays on screen when the RAMFS has been
  31855. killed.
  31856. 6.8
  31857. Finally, from R. W. Darlington:
  31858. 6.8
  31859. When I load so many items on the iconbar that it has to scroll to reach
  31860. opposite ends and I then delete an item from the middle of the list, I
  31861. sometimes finds that as well as the deleted one disappearing, other
  31862. icons disappear leaving only their names. Also, all the directory icons
  31863. and application icons disappear from directory viewers leaving only
  31864. their names as reminders as to what is there.
  31865. 6.8
  31866. In !Paint, when I try to x-scale or y-scale a sprite, I find that it
  31867. takes one column off the right hand edge and puts it at the left hand
  31868. edge.
  31869. 6.8
  31870. Has anyone else experienced these or other bugs?
  31871. 6.8
  31872. Matters Arising
  31873. 6.8
  31874. Alarm (switching between GMT and BST)
  31875. 6.8
  31876. (Archive 6.3p15 / 6.5p35) Colin Singleton confirms that the alarm set
  31877. for 1 a.m. on 7th February 1994 is to remind you to set the BST on and
  31878. off dates in 1994.
  31879. 6.8
  31880. Don’t worry: you don’t have to stay up to catch this alarm: it will come
  31881. up when you next switch the computer on.
  31882. 6.8
  31883. Ken Cowap has sent in a description which he hopes will complement the
  31884. rather brief instructions in the Applications Guide (p132) on this
  31885. rather convoluted facility:
  31886. 6.8
  31887. When this option is selected, Alarm will automatically switch between
  31888. GMT and BST times on the dates you specify. Click on the arrows to
  31889. change the time, day, month and year.
  31890. 6.8
  31891. Entries must be for one calendar year only even though the “BST starts
  31892. on:” date may already have passed. Any such past date will be ignored
  31893. but must be entered nevertheless.
  31894. 6.8
  31895. As the changeover dates are liable to undefined variation from year to
  31896. year, Alarm will issue a warning during the month prior to that of the
  31897. next year’s first expected changeover.
  31898. 6.8
  31899. The warning will be recorded in the Alarm Browser Window as “Application
  31900. alarm set by Alarm”, and the dates/times of valid changeover(s) will
  31901. still be activated. These alarms appear in dark grey and cannot be
  31902. selected. When the warning is activated, a message appears saying: “The
  31903. dates for entering and leaving BST are no longer valid and should be
  31904. reset as soon as possible.” and two options are offered: “Reset them
  31905. later” and “Reset them now.” The warning will be repeated automatically
  31906. at 24 hour intervals until “Reset them now” is selected and the dates
  31907. and times are reset.
  31908. 6.8
  31909. Ken warns that anyone wanting to experiment by setting the system clock
  31910. into the future should take care to back up their alarms first, since a
  31911. “move into the future” will activate and lose all alarms set to go off
  31912. before that date. Also note that there is a long delay accompanied by
  31913. unexplained hourglass activity before the warning notice appears.
  31914. 6.8
  31915. Impression dongle
  31916. 6.8
  31917. (Archive 6.5 p32) Colin Singleton has been assured by Computer Concepts
  31918. that shorting the pins of the Impression dongle can do no harm.
  31919. Switching the computer off while Impression is running can cause
  31920. problems. Apparently, the reason is that Impression continually checks
  31921. that its dongle is present and, if it happens to be checking when power
  31922. is lost, the dongle is liable to receive a burst of static which renders
  31923. it inoperable. This will drain away if you leave it for a time (perhaps
  31924. a few hours) but the quick cure, according to CC, is to short the lines
  31925. to each other using a small coin rubbed against the rows of male pins.
  31926. Colin recommends removing the dongle from both the machine and the
  31927. printer first.
  31928. 6.8
  31929. Getting the hare and tortoise into step
  31930. 6.8
  31931. (Archive 6.6 p59) Jim Nottingham has written in response to my plea...
  31932. “the solution is to fire up the computer in slow mode with a *Configure
  31933. Cache off command and run the !Arm3 application in the Boot file. This
  31934. brings up the computer with the cache on and the hare on the iconbar. If
  31935. you want the computer to boot up with the Arm3 cache off, add *Cache off
  31936. to his Boot file after running the Arm3 application.”
  31937. 6.8
  31938. Well! I must be completely dense. I’ve tried to follow these
  31939. instructions to the letter. I have typed *Configure Cache off at the
  31940. command line (and *Status confirms that the cache configuration is
  31941. “off”) and I have a !Boot file (file type “Desktop”) the first two lines
  31942. of which read:
  31943. 6.8
  31944. Filer_Boot ADFS::Four.$.!System
  31945. 6.8
  31946. RUN system:!Arm3
  31947. 6.8
  31948. When I boot up, the cache is off and the tortoise on the iconbar. When I
  31949. click once on the tortoise, the cache is turned on, but the tortoise
  31950. stays. When I click a second time, the hare appears but the cache is
  31951. turned off. Adding Cache on as the next line of the !Boot file doesn’t
  31952. seem to help. What do I do next (apart from swapping the names of the
  31953. two icons as I’ve suggested before!)?
  31954. 6.8
  31955. Pinboard backdrop sprites
  31956. 6.8
  31957. In Archive 6.4 p12, R. W. Darlington gave a suggested modification to
  31958. the !Boot file which results in a different backdrop being shown each
  31959. time the computer is reset. His method causes the available sprites to
  31960. be chosen in strict rotation. Geoffrey Rimmer has suggested a variation
  31961. of the same idea which would choose one of the sprites at random.
  31962. 6.8
  31963. Assuming, as before, that there are 75 sprites called Sprit00 to Sprit74
  31964. in the directory PinSp, his suggested code is:
  31965. 6.8
  31966. Set S$ <Sys$Time>
  31967. 6.8
  31968. SetEval S$ S$ RIGHT5
  31969. 6.8
  31970. SetEval NN STR(VAL(S$ RIGHT2 + S$ LEFT2)MOD 75)
  31971. 6.8
  31972. If LEN(NN)=1 Then SetEval NN “0” +NN
  31973. 6.8
  31974. SetEval Tile$Name “Sprit”+NN
  31975. 6.8
  31976. Pinboard
  31977. 6.8
  31978. Backdrop -T ADFS::4.$.PinSp. <Tile$Name>
  31979. 6.8
  31980. Finally ...
  31981. 6.8
  31982. Page 140 of the User Guide says that the example commands to set
  31983. Alias$@PrintType and Alias$@RunType variables must have trailing spaces.
  31984. Does anyone know why?  A
  31985. 6.8
  31986. Supermarket − In Four Languages
  31987. 6.8
  31988. Alex Thomas
  31989. 6.8
  31990. This review is a language teacher’s perspective on the ‘Supermarket’
  31991. language programs produced by New Era Software in four languages
  31992. (English, French, German and Spanish).
  31993. 6.8
  31994. Surely, I thought, this must be every modern language teacher’s dream
  31995. software for the Archimedes. Just think of the realistic situations set
  31996. against the background of shopping in a supermarket which could meet the
  31997. demands of the National Curriculum (Modern Languages and IT) and the
  31998. GCSE syllabuses. This disc must, I thought, deal with asking for
  31999. particular items, quantities, containers, problems at the checkout,
  32000. queries about the bill, breakages, complaints, special offers, coupons,
  32001. shoplifting, advertising, job vacancies − the potential is tremendous.
  32002. 6.8
  32003. With my mind buzzing with such expectations, I was eager to try out this
  32004. program with a class, so I sat down after school to run through it and
  32005. plan some meaningful tasks. I was hoping to use the German version, so
  32006. that was where I started. I needed to enter the shop name and a message
  32007. to go on the till receipts − everything was in German, so I was feeling
  32008. very positive about the program. (The function keys are used for accents
  32009. in all the languages.) The next screen asked for information about what
  32010. is bought, the price, the amount tendered, method of payment − still all
  32011. in German, as are the print commands, etc.
  32012. 6.8
  32013. Having entered some information, I printed it out − a very basic till
  32014. receipt with my list of items and prices, which are totalled with the
  32015. amount of change calculated and my message from the first screen (thank
  32016. you). It was much the same as all those till receipts I have brought
  32017. back from various trips in recent years, except that at least the pupil
  32018. has to enter the items bought and understand approximately twenty items
  32019. of vocabulary which appear on the screen for each “customer”.
  32020. 6.8
  32021. I began to plan tasks for my beginners using the printouts. One pupil
  32022. could produce one and the others ask questions to find out the prices.
  32023. We could produce them for different shops and compare prices.... but
  32024. then, I have a cupboard full of attractive, colourful supermarket
  32025. advertising leaflets from Germany, in class sets, surely it would be
  32026. better to use them!
  32027. 6.8
  32028. I decided to go back to the program to see what else it has to offer
  32029. which the GCSE sets could use. I pressed “clear” to see what happened −
  32030. the chance to enter another list of items and prices! Since the computer
  32031. totals the prices and works out the change, you can’t even work on
  32032. complaints at the checkout, except by pretending that the wrong price
  32033. was entered.
  32034. 6.8
  32035. There is no list of acceptable items, so there is no spellcheck, it
  32036. accepts complete nonsense − an item is any set of letters, a price any
  32037. number. There are no graphics, no variations on the basic layout and
  32038. content, nothing which will interest the pupils or give them a sense of
  32039. achievement, unless the teacher spends hours devising speaking tasks
  32040. based on till receipts.
  32041. 6.8
  32042. Is it worth taking the whole class to the computer room to produce a
  32043. till receipt, or devising a flexible learning lesson with a variety of
  32044. small group activities so that this program can be used on the one
  32045. computer in my room? No, definitely not. I have some much better ideas
  32046. based on my wide selection of realia!
  32047. 6.8
  32048. The program’s handbook suggests many sophisticated possibilities using
  32049. product files and bar codes which may be valid for teachers of
  32050. Technology, etc to develop. However, as a language teacher, I have not
  32051. yet found the time to work on these areas which seem to have little to
  32052. do with communication, verbal or written. In case I was too hasty in my
  32053. rejection of this program, I decided to use it with a class anyway. The
  32054. first pupil (below average year 9) got to the printing stage and said
  32055. “Now what?” − “That’s all it does”, I replied. He returned to his group
  32056. to do the structured oral tasks I had set up, showed them his till
  32057. receipt and the rest asked, “Wouldn’t it be quicker if we just wrote one
  32058. out miss?”  A
  32059. 6.8
  32060. Hints and Tips
  32061. 6.8
  32062. •    A5000 serial port problems − Several of you will have experienced
  32063. problems with dead or dying serial ports on their A5000s. Acorn are
  32064. aware of problems on early A5000 p.c.b.s and have a fix for them.
  32065. However, there are still some problems with static. Until Acorn find a
  32066. solution, the best we can do is take suitable precautions. (1) Use
  32067. braid-screened cable and connect the braid to the connector shells at
  32068. both ends. Also, never connect a cable when the machine at either end is
  32069. switched on. Always switch on both devices after the cable has been
  32070. connected.
  32071. 6.8
  32072. •    Filer_CloseDir − On my 4Mb A3000, I like to open ‘related’ windows to
  32073. various programs and then close them again when finished, by using
  32074. Filer_OpenDir <pathname> <position> and Filer_ CloseDir <pathname>
  32075. respectively. I put these commands in the !Run file of !BJ10e Turbo
  32076. Drivers, one before the command to run !Runimage and the other after.
  32077. Readers should be warned that the command Filer_CloseDir clashes with
  32078. CC’s Turbo Driver (v2.09b) when using their Compression filing system
  32079. (CFS) (v1.17). If the Turbo driver is loaded first and then CFS, you
  32080. will find that, when trying to quit the Turbo Driver, it goes into an
  32081. error loop with SWI &43303 not known and only a <ctrl-break> or <reset>
  32082. will release the computer so you lose all unsaved files, etc. No problem
  32083. occurs when they are loaded in reverse order or when Filer_ CloseDir is
  32084. deleted from the !Run file of !BJ10e.
  32085. 6.8
  32086. Does anyone know whether any other programs clash with Filer_CloseDir? 
  32087. Brian Cocksedge, Midhurst.
  32088. 6.8
  32089. •    Filofax printing − We had a letter printed on a piece of Filofax paper
  32090. which proved that you can do so with a Canon BJ200 with CC’s Turbo
  32091. Driver software using a custom page size of 95 × 165 mm. If you use
  32092. Impression (II or Junior), it shows the print area so it is easy then to
  32093. create a suitable frame and choose a small typeface (say, 8 pt) and view
  32094. the page at 200%.  Brian Stewart, Nairn.
  32095. 6.8
  32096. •    Inkjet printing − When inkjet/bubblejet printouts need a relatively
  32097. large amount of ink, the paper can become a little wrinkled. To remove
  32098. the wrinkles, pass the paper through a laser printer by printing a blank
  32099. page. This calendars the paper to its original smooth finish.  George
  32100. Foot, Oxted.
  32101. 6.8
  32102. •    Laser toner cartridges − The first sign you get that a laser toner
  32103. cartridge is about to run out is a line down the paper which is
  32104. obviously very low on toner. If you “rock the cartridge gently”, you may
  32105. be able to spread the toner out sufficiently to get a few more sheets
  32106. out of it. Try rocking first but then eventually, try shaking. Beware,
  32107. if you shake too soon, you can end up with toner all over the place! 
  32108. Colin Singleton, Sheffield.
  32109. 6.8
  32110. •    ShowPage confusion − It has been said within the pages of Archive that
  32111. “ShowPage does not work with RISC OS 3”. This is not entirely correct.
  32112. It will not work with RISC OS 3 fonts, i.e. those which have their own
  32113. kerning tables, and it will not work with RISC OS 3’s ROM fonts.
  32114. However, if you want to use ShowPage, all you need to do is to replace
  32115. the in-built fonts (Corpus, Homerton and Trinity) with ones within your
  32116. own font folder and included a FontRemove command to remove the ROM
  32117. fonts.  A
  32118. 6.8
  32119.  
  32120. Hints and Tips
  32121. 6.9
  32122. •    Anti-aliased fonts − I find that anti-aliasing on a standard
  32123. resolution monitor gives a far too blurred image. My hint is to use the
  32124. outline version of the System font at an unexpanded point size. A bit of
  32125. experimentation is needed to get it right if you habitually use the
  32126. screen at some scale other than one to one but when you get it right,
  32127. the result is a nice fast, clean and clear font on any DTP or
  32128. wordprocessing package while you work on the text. Remember to change
  32129. the font to your preferred version for the final print. I am afraid I
  32130. can’t remember where I obtained the Outline System font.
  32131. 6.9
  32132. On my Pentoms game, I changed the transfer coefficients to sharpen up
  32133. the edges of my fancy fonts but that does not work well/at all on
  32134. RISC OS 3. Is there a way of getting a program to automatically check
  32135. which OS it is running under so that I can disable this facility where
  32136. it won’t work? Or is there another way of sharpening RISC OS 3 fonts?
  32137. Yes I know about turning off anti-aliasing but that is not quite the
  32138. same thing at all − bits of the letters are missed if you do that. 
  32139. Simon Anthony, Nottingham.
  32140. 6.9
  32141. • Backing up in one pass − The “Next” slot in the Task Manager can be
  32142. set from a !Boot file in RISC OS 3 to make backing up and copying of
  32143. full 800Kb discs occur in a single pass. Use the command
  32144. 6.9
  32145. WimpSlot -next 864K
  32146. 6.9
  32147. inside your !Boot file.  Barry Thompson,
  32148. 6.9
  32149. Alternatively (for RISC OS 2 owners) you can allocate more memory to the
  32150. Next Task slot by issuing the Wimp_SlotSize SWI call from Basic. All
  32151. that you need is a Basic program containing the line:
  32152. 6.9
  32153. SYS “Wimp_SlotSize”,-1,<slotsize>
  32154. 6.9
  32155. where <slotsize> is in bytes (e.g. use 65536 for 64Kb.)
  32156. 6.9
  32157. Simon Moy, NCS.
  32158. 6.9
  32159. •    !Boot files are not strictly necessary within applications. They use
  32160. up disc space and slow down the opening of windows (especially over a
  32161. network). If an application’s !Boot file only contains the IconSprites
  32162. command, then this can be moved to the !Run file, and the !Boot file can
  32163. be deleted. The only effect is that the application will not show the
  32164. correct icon in the filer window until the application is actually run. 
  32165. Keith Harja, Derby.
  32166. 6.9
  32167. •    Gods passwords − On this month’s program disc is all you need for
  32168. getting the passwords for Gods. Andrew Ferguson, London N15.
  32169. 6.9
  32170. •    Mono TIFF files − In reply to help for Ray Dawson in Archive 6.5 p18
  32171. for producing mono TIFF files from B&W scanned sprites. I have used
  32172. !MakeTiff version 2.00 by John Kortink to do exactly that. I examined
  32173. the resulting Tiff file using Graphics Workshop (under the emulator) and
  32174. Translator, and they both showed the converted sprite as a B&W image. 
  32175. Chris Bass, Grimsby.
  32176. 6.9
  32177. •    Symbols for Impression − When using Impression, or even more so
  32178. Junior, it can sometimes be tedious to find a desired symbol from a font
  32179. such as Dingbats. Therefore, I have created a number of text files which
  32180. can be dragged into any Impression document. The format for such files
  32181. is “® ”, without the quotes. This returns the type to its default size,
  32182. selects the desired font, inserts the character with ASCII code 174 and
  32183. resets the font to its default. N.B. The space at the end is essential.
  32184. This is so that one can do a <ctrl-right> to end of text. Without this
  32185. space, the font is not reset. I have given a number of pre-prepared ones
  32186. to Paul for inclusion on this month’s program disc.  Neil Walker,
  32187. Norwich.
  32188. 6.9
  32189. You need to be very careful with this one. I tried it on Impression 2.19
  32190. and it gave an internal error and Impression bombed out! This was
  32191. because I didn’t have the symbol font in my system. I tried it on
  32192. version 2.17 and it complained politely that it didn’t have Symbol font
  32193. and let me carry on. I presume that the difference is because
  32194. Impression, from 2.18 onwards, has no limit to the number of fonts it
  32195. can handle so that part of the code must have been changed. Don’t say we
  32196. didn’t warn you! Ed.
  32197. 6.9
  32198. •    Testing printers’ on-line status − Here is a way of testing whether
  32199. the printer is on- or off-line:
  32200. 6.9
  32201.  10 *FX 3,10
  32202. 6.9
  32203.  20 PRINT CHR$(0);
  32204. 6.9
  32205.  30 a = INKEY(20)
  32206. 6.9
  32207.  40 a = ADVAL(-4)
  32208. 6.9
  32209.  50 *FX 3,0
  32210. 6.9
  32211.  60 *FX 21,3
  32212. 6.9
  32213.  70 IF a <> 1023 THEN
  32214. 6.9
  32215.  80    PRINT “Printer not on line”
  32216. 6.9
  32217.  90 ELSE
  32218. 6.9
  32219. 100   PRINT “Printer on line”
  32220. 6.9
  32221. 110 ENDIF
  32222. 6.9
  32223. 120 END
  32224. 6.9
  32225. Paul Ribworth, Gloucester
  32226. 6.9
  32227. •    Using high density discs − Until the advent of the A5000, all
  32228. Archimedes computers had an 800Kb 3½“ disc drive so the problems of
  32229. different disc densities didn’t really arise. With the introduction of
  32230. the new A3000 and A4000 series, 1.6Mb drives are becoming more common
  32231. and some users are trying to save a few pence by formatting normal
  32232. density discs to 1.6Mb.
  32233. 6.9
  32234. Users of BBC and Master computers learned that there is no point in
  32235. paying extra for 80 track discs as the cheaper 40 track were actually
  32236. identical. The same is NOT true of 800Kb and 1.6Mb discs. The magnetic
  32237. coating on high density discs uses finer particles than the coating used
  32238. on standard (double density) types. This is designed to accept higher
  32239. signal levels without distortion. When the higher capacity format is
  32240. used, the drive automatically uses a stronger magnetic field to imprint
  32241. the data on the discs surface.
  32242. 6.9
  32243. Sometimes, good quality normal density discs can accept this level but
  32244. it does represent a severe overload. Even if all appears well at the
  32245. time, the larger particles used in the normal density coating are
  32246. frequently unable to retain the high level of magnetism required so it
  32247. can leak away in time making part of the data unreadable.
  32248. 6.9
  32249. Also, you should not use high density discs in a normal density drive if
  32250. they have previously been formatted to 1.44 or 1.6Mb. The lower flux
  32251. levels used for the normal format may not be able to completely erase
  32252. the earlier data. This can then ‘break through’ and corrupt data saved
  32253. later at the lower flux levels used with the smaller format. It may
  32254. sometimes take more than a month for this to happen. So don’t be fooled
  32255. into thinking that everything is OK just because all seems to be well
  32256. when you first format the disc. Many Archimedes users who have
  32257. ‘borrowed’ preformatted 1.44Mb discs from work to use in their 800Kb
  32258. drives have experienced this problem.
  32259. 6.9
  32260. There is no reason why you cannot use a NEW high density disc at 800Kb,
  32261. it will just be more expensive.
  32262. 6.9
  32263. Because of this, it is obviously useless to do what used to be common
  32264. practice with the old 40/80 track discs, namely try to format them to 80
  32265. tracks and if it didn’t work use them for 40 track. Once you have
  32266. attempted to format an 800Kb disc to 1.6 or 1.44 Mb there is no going
  32267. back. I have had some success using a tape head demagnetiser to
  32268. completely wipe out data on 800Kb discs which had been formatted to
  32269. 1.6Mb so that they could be reformatted to 800Kb, but not everyone has
  32270. one of these.
  32271. 6.9
  32272. PC drives all have a sensor which detects the extra hole in a high
  32273. density disc and won’t allow you to specify the wrong format. For some
  32274. reason, Acorn didn’t implement this feature on the Archimedes although
  32275. the detector is present on all high density drives. It is therefore
  32276. possible, by accident, to format a normal density disc to 1.6Mb. On a
  32277. PC, to do this you need to drill a hole in the case of the disc so it
  32278. can’t happen unintentionally.
  32279. 6.9
  32280. The most pernicious thing about this problem is that it can lead you
  32281. into a false sense of security. A normal density disc may format
  32282. perfectly to 1.6Mb and, for months, everything will appear to be well.
  32283. Then suddenly some of the data may become slightly corrupt, although the
  32284. disc may not actually appear to have any errors.
  32285. 6.9
  32286. If your data is precious enough to be worth saving, it’s worth the extra
  32287. few pence that the proper discs cost. The only time that I have known
  32288. people use normal density discs successfully as high density was with
  32289. expensive branded discs costing about £1.30 each. As this is
  32290. considerably more than the price of unbranded high density discs, it
  32291. seems a foolish risk to take.  David Holden, Sydenham.  A
  32292. 6.9
  32293. Hints and Tips
  32294. 6.9
  32295. •    Anti-aliased fonts − I find that anti-aliasing on a standard resolution monitor gives a far too blurred image. My hint is to use the outline version of the System font at an unexpanded point size. A bit of experimentation is needed to get it right if you habitually use the screen at some scale other than one to one but when you get it right, the result is a nice fast, clean and clear font on any DTP or wordprocessing package while you work on the text. Remember to change the font to your preferred version for the final print. I am afraid I can’t remember where I obtained the Outline System font.
  32296. 6.9
  32297. On my Pentoms game, I changed the transfer coefficients to sharpen up the edges of my fancy fonts but that does not work well/at all on RISC OS 3. Is there a way of getting a program to automatically check which OS it is running under so that I can disable this facility where it won’t work? Or is there another way of sharpening RISC OS 3 fonts? Yes I know about turning off anti-aliasing but that is not quite the same thing at all − bits of the letters are missed if you do that.  Simon Anthony, Nottingham.
  32298. 6.9
  32299. • Backing up in one pass − The “Next” slot in the Task Manager can be set from a !Boot file in RISC OS 3 to make backing up and copying of full 800Kb discs occur in a single pass. Use the command
  32300. 6.9
  32301. WimpSlot -next 864K
  32302. 6.9
  32303. inside your !Boot file.  Barry Thompson,
  32304. 6.9
  32305. Alternatively (for RISC OS 2 owners) you can allocate more memory to the Next Task slot by issuing the Wimp_SlotSize SWI call from Basic. All that you need is a Basic program containing the line:
  32306. 6.9
  32307. SYS “Wimp_SlotSize”,-1,<slotsize>
  32308. 6.9
  32309. where <slotsize> is in bytes (e.g. use 65536 for 64Kb.)
  32310. 6.9
  32311. Simon Moy, NCS.
  32312. 6.9
  32313. •    !Boot files are not strictly necessary within applications. They use up disc space and slow down the opening of windows (especially over a network). If an application’s !Boot file only contains the IconSprites command, then this can be moved to the !Run file, and the !Boot file can be deleted. The only effect is that the application will not show the correct icon in the filer window until the application is actually run.  Keith Harja, Derby.
  32314. 6.9
  32315. •    Gods passwords − On this month’s program disc is all you need for getting the passwords for Gods. Andrew Ferguson, London N15.
  32316. 6.9
  32317. •    Mono TIFF files − In reply to help for Ray Dawson in Archive 6.5 p18 for producing mono TIFF files from B&W scanned sprites. I have used !MakeTiff version 2.00 by John Kortink to do exactly that. I examined the resulting Tiff file using Graphics Workshop (under the emulator) and Translator, and they both showed the converted sprite as a B&W image.  Chris Bass, Grimsby.
  32318. 6.9
  32319. •    Symbols for Impression − When using Impression, or even more so Junior, it can sometimes be tedious to find a desired symbol from a font such as Dingbats. Therefore, I have created a number of text files which can be dragged into any Impression document. The format for such files is “® ”, without the quotes. This returns the type to its default size, selects the desired font, inserts the character with ASCII code 174 and resets the font to its default. N.B. The space at the end is essential. This is so that one can do a <ctrl-right> to end of text. Without this space, the font is not reset. I have given a number of pre-prepared ones to Paul for inclusion on this month’s program disc.  Neil Walker, Norwich.
  32320. 6.9
  32321. You need to be very careful with this one. I tried it on Impression 2.19 and it gave an internal error and Impression bombed out! This was because I didn’t have the symbol font in my system. I tried it on version 2.17 and it complained politely that it didn’t have Symbol font and let me carry on. I presume that the difference is because Impression, from 2.18 onwards, has no limit to the number of fonts it can handle so that part of the code must have been changed. Don’t say we didn’t warn you! Ed.
  32322. 6.9
  32323. •    Testing printers’ on-line status − Here is a way of testing whether the printer is on- or off-line:
  32324. 6.9
  32325.  10 *FX 3,10
  32326. 6.9
  32327.  20 PRINT CHR$(0);
  32328. 6.9
  32329.  30 a = INKEY(20)
  32330. 6.9
  32331.  40 a = ADVAL(-4)
  32332. 6.9
  32333.  50 *FX 3,0
  32334. 6.9
  32335.  60 *FX 21,3
  32336. 6.9
  32337.  70 IF a <> 1023 THEN
  32338. 6.9
  32339.  80    PRINT “Printer not on line”
  32340. 6.9
  32341.  90 ELSE
  32342. 6.9
  32343. 100   PRINT “Printer on line”
  32344. 6.9
  32345. 110 ENDIF
  32346. 6.9
  32347. 120 END
  32348. 6.9
  32349. Paul Ribworth, Gloucester
  32350. 6.9
  32351. •    Using high density discs − Until the advent of the A5000, all Archimedes computers had an 800Kb 3½“ disc drive so the problems of different disc densities didn’t really arise. With the introduction of the new A3000 and A4000 series, 1.6Mb drives are becoming more common and some users are trying to save a few pence by formatting normal density discs to 1.6Mb.
  32352. 6.9
  32353. Users of BBC and Master computers learned that there is no point in paying extra for 80 track discs as the cheaper 40 track were actually identical. The same is NOT true of 800Kb and 1.6Mb discs. The magnetic coating on high density discs uses finer particles than the coating used on standard (double density) types. This is designed to accept higher signal levels without distortion. When the higher capacity format is used, the drive automatically uses a stronger magnetic field to imprint the data on the discs surface.
  32354. 6.9
  32355. Sometimes, good quality normal density discs can accept this level but it does represent a severe overload. Even if all appears well at the time, the larger particles used in the normal density coating are frequently unable to retain the high level of magnetism required so it can leak away in time making part of the data unreadable.
  32356. 6.9
  32357. Also, you should not use high density discs in a normal density drive if they have previously been formatted to 1.44 or 1.6Mb. The lower flux levels used for the normal format may not be able to completely erase the earlier data. This can then ‘break through’ and corrupt data saved later at the lower flux levels used with the smaller format. It may sometimes take more than a month for this to happen. So don’t be fooled into thinking that everything is OK just because all seems to be well when you first format the disc. Many Archimedes users who have ‘borrowed’ preformatted 1.44Mb discs from work to use in their 800Kb drives have experienced this problem.
  32358. 6.9
  32359. There is no reason why you cannot use a NEW high density disc at 800Kb, it will just be more expensive.
  32360. 6.9
  32361. Because of this, it is obviously useless to do what used to be common practice with the old 40/80 track discs, namely try to format them to 80 tracks and if it didn’t work use them for 40 track. Once you have attempted to format an 800Kb disc to 1.6 or 1.44 Mb there is no going back. I have had some success using a tape head demagnetiser to completely wipe out data on 800Kb discs which had been formatted to 1.6Mb so that they could be reformatted to 800Kb, but not everyone has one of these.
  32362. 6.9
  32363. PC drives all have a sensor which detects the extra hole in a high density disc and won’t allow you to specify the wrong format. For some reason, Acorn didn’t implement this feature on the Archimedes although the detector is present on all high density drives. It is therefore possible, by accident, to format a normal density disc to 1.6Mb. On a PC, to do this you need to drill a hole in the case of the disc so it can’t happen unintentionally.
  32364. 6.9
  32365. The most pernicious thing about this problem is that it can lead you into a false sense of security. A normal density disc may format perfectly to 1.6Mb and, for months, everything will appear to be well. Then suddenly some of the data may become slightly corrupt, although the disc may not actually appear to have any errors.
  32366. 6.9
  32367. If your data is precious enough to be worth saving, it’s worth the extra few pence that the proper discs cost. The only time that I have known people use normal density discs successfully as high density was with expensive branded discs costing about £1.30 each. As this is considerably more than the price of unbranded high density discs, it seems a foolish risk to take.  David Holden, Sydenham.  A
  32368. 6.9
  32369. Using RISC OS 3.10
  32370. 6.9
  32371. Hugh Eagle
  32372. 6.9
  32373. More encouragement for the faint-hearted!
  32374. 6.9
  32375. Stuart Bell says: “Having read the RISC OS Column for the past few months, I approached the upgrade with caution, afraid of all sorts of installation and compatibility problems. I guess that by the nature of the things, it’s those people who encounter problems who write in, thereby giving a false impression of the true situation. So, if you’re still with RISC OS 2 and thinking about upgrading, be encouraged. Installing RISC OS 3 on my A310, including removing the main board and installing the IFEL ROM carrier board took about an hour from start to finish, and I experienced no unforeseen problems.
  32376. 6.9
  32377. “Having been warned of problems with Compression 1.1, I de-compressed all files first. I await the free upgrade from CC. There is the reported problem with early versions of Font-FX and that’s in hand.
  32378. 6.9
  32379. “A couple of warnings, though: As well as powering up with <Delete> depressed, also make sure that you’ve re-connected the keyboard first. (Don’t laugh – it could have been you! That cost me several minutes of panic.) Secondly, alter the Font Size figure before loading your first Impression document, which otherwise can take several minutes to load with a 32Kb buffer.”
  32380. 6.9
  32381. • Avie Electronics 4Mb A310 upgrade − The following information has come from Avie: LK12 should be altered to 1-3 and 2-4. Issue 1 PCBs do not have LK12 and require modification as follows:
  32382. 6.9
  32383. Option 1: pins 2 and 24 on all of the ROMs are to be swapped. Remove pins 2 and 24 from each ROM socket by bending them up. Join pin 24 on all ROMs to GND. Join pin 2 on all ROMs to LA18 on IC28, pin 18.
  32384. 6.9
  32385. Option 2: remove pin 2 from each stamped socket on PCB and strap a wire between the pins and LA18. Likewise, pin 24 can be strapped to GND after removing the pins in the stamped sockets.
  32386. 6.9
  32387. Hardware problems
  32388. 6.9
  32389. Watford Electronics ARM3 − When Colin Wood fitted a Watford Electronics ARM3 upgrade to his A410 it didn’t work. “The screen flashed red/blue, but no beep. Just dead.” As he had recently fitted RISC OS 3, he decided to replace the RISC OS 2 chips and everything seemed OK, but when he put the RISC OS 3 chips back, again it didn’t work. Watford’s help line couldn’t help, so he returned the ARM3 and since they were (again) out of stock he cancelled his order and got most (but not all, apparently) of his money back. Another ARM3, from CJE Micro’s, worked first time.
  32390. 6.9
  32391. Watford A310 RAM upgrades − Watford Electronics say that they are aware that their early A305/310 RAM upgrades do not work with RISC OS 3 but they do not have any solution. They simply recommend that you buy one of their newer RAM upgrades instead because they do work with RISC OS 3. Fortunately, IFEL have stepped into the breach. They can offer new PAL chips to plug into the Watford boards that will solve the problem. These PAL chips are £3 +VAT each from IFEL and you need to state whether you have the 2Mb or the 4Mb version. (This refers to the upgrades that consisted of two PCBs with a ribbon cable along the RHS of the machine.)
  32392. 6.9
  32393. Program problems
  32394. 6.9
  32395. QuicKey clash − J. Nichols reports that, if QuicKey is loaded from within a !Boot file, it can remove the *Opt 4,2 status from the booted disc resulting in a disc which no longer runs a !Boot file.
  32396. 6.9
  32397. !Edit – Following last month’s reports of a “bug” in Edit we now have the following from Tom Rank: “There seemed to be a rare problem with Edit the other day; my text (exported from Ovation) was displayed in a most corrupted way, with a large amount of blank screen to start with and then disintegrating words. I thought it was a problem with Ovation. However, when I tried to show it to John Wallace of Risc Developments at BETT, the file displayed without problems, as it did back on my own machine the next day. Any idea why?”
  32398. 6.9
  32399. Fun School 4 (for the under 5s) – Tom Rank found that this ran under RISC OS 3.00 but not 3.10, but Europress Software supplied an updated disc very promptly which now works.
  32400. 6.9
  32401. Freddy Teddy – Topologika supplied a new version to Tom Rank on the spot at BETT!
  32402. 6.9
  32403. Ovation – Tom Rank says you are urged to obtain 1.37S (dated 17 January 1993). This overcomes the saving with <F3> problem – which really was a problem, so do upgrade. They have also restored the ‘select all’ shortcut − but only if you use the right-hand <Ctrl> key along with A (to avoid the problem of catching <Ctrl-A> instead of <Ctrl-S> or just <A>).
  32404. 6.9
  32405. This version also contains three new printing options, not documented: Fit, Centre and Registration marks. These should be self explanatory, but Tom is not quite sure about them!
  32406. 6.9
  32407. Break147 and SuperPool – D. S. Allen got these to work using the information provided by David Holden in the April column. He writes: “In Break147 there is one Basic program called !Snook which contains the line
  32408. 6.9
  32409.  90SYS 26,64,64.
  32410. 6.9
  32411. A REM statement in front of the SYS will cure the problem and the program will then run under RISC OS 3.1.
  32412. 6.9
  32413. “Similarly, in SuperPool there is a Basic program !Pool in the Data directory in which line 60 has the same SYS 26,64,64 statement.
  32414. 6.9
  32415. “Note that to make these changes, people will require the read/write version of Mark Smith’s excellent ArcFS program.” (Or, presumably, an equivalent utility such as SparkFS.)
  32416. 6.9
  32417. Superior Golf / Construction Set – We reported in Archive 6.7 p43 that Dave Wilcox had found that these did not work in RISC OS 3.10. Rob Brown, however, says he has had no problems with them.
  32418. 6.9
  32419. Corruption – Rob Brown says that this can be made to work by modifying its !Run file to kill the RISC OS 3 Shared C Library module and load the very old version of the module supplied with the game. To do this, include at the beginning of the !Run file the line:
  32420. 6.9
  32421. RMKill SharedCLibrary
  32422. 6.9
  32423. and then add at the end of the file the following two lines:
  32424. 6.9
  32425. RMKill SharedCLibrary
  32426. 6.9
  32427. RMLoad SharedCLibrary
  32428. 6.9
  32429. to remove the old version and reload the RISC OS 3 version of the module. He points out that it may well be advisable to Quit any other applications that may be using the RISC OS 3 Shared C Library module before running the game.
  32430. 6.9
  32431. Freddy’s Folly – Rob Brown advises that this game contains a !Run file (in Basic) which includes an automatic ‘auto-configuration’ of the computer’s memory as well as setting up a number of initial program parameters. The various auto-configuration elements should be deleted from this file. A further complication is that the disc is copy protected, but it should be possible to rename the original !Run file (to say !RunOLD) and re-save a new !Run file containing only the initial program parameters. He also advises that the game assumes that the default disc drive is 0. For users with a hard disc this can easily be set by typing:
  32432. 6.9
  32433.     Drive 0
  32434. 6.9
  32435. at the command line (accessed by pressing function key <F12>) before starting the game. Alternatively, the game’s !Run file can be appropriately amended by including the “<Obey$Dir>” command.
  32436. 6.9
  32437. NOTE: the advice on Corruption and Freddy’s Folly is included in the program compatibility chart which Rob Brown has compiled and which has been included on the Archive monthly program disc. He will welcome any information which will help him to make the chart as comprehensive and up-to-date as possible. His address is “Valtanee”, Brighton Road, Lower Kingswood, Tadworth, Surrey, KT20 6UP.
  32438. 6.9
  32439. Aldebaran – (see Archive 6.8 p23) Atle Mjelde Bårdholt has contacted the author and has learned that, on his A310 with IFEL’s 2Mb upgrade, he has to add 8Kb to the WimpSlot values in the !Aldebaran.!Run file (from 624Kb to 632Kb). Then everything works fine. He says this might be due to the RAM upgrade: Aldebaran seems to work fine on any other Archimedes with RISC OS 3.1. He adds a final bit of advice: “Get a copy!”
  32440. 6.9
  32441. Printing
  32442. 6.9
  32443. Printing to file
  32444. 6.9
  32445. Tom Rank has found that the hint from Simon Moy in Archive 6.2.7 about editing the number of text lines seems redundant under RISC OS 3.10, and that printing to a file (at least with the Epson LQ-860 driver) resulted in a printout which aborted with an “address exception at &038B5BE0”, a frozen printer and an incomplete document (the last few millimetres were lost). This is particularly irritating as printing to a file is the only way, apart from buying a direct laser printer or a CC Turbo Driver, to avoid the long wait for print out. (How about using the PROdriver shell for use with Acorn drivers? See the review on page 43. Ed.)
  32446. 6.9
  32447. Using fanfold paper
  32448. 6.9
  32449. Tom Rank comments: “Feeding single sheets into a printer soon becomes a pain, but sheetfeeders come expensive, so A4 fanfold paper seemed a good idea (even though it’s about four or five times more expensive than better quality photocopy paper at a discount stationer!). However, with RISC OS 3.00, I could never get the settings right, so the print always crept up or down the page until it crossed the fold. With RISC OS 3.10, I’ve finally got it to work, whether by fluke I’m not sure. Using the LQ-860 printer driver with my Epson LQ-550 printer, the correct settings from the paper sizes menu are: top margin 8mm and bottom margin 15mm; save these with a name like ‘A4 Fanfold’ and the margins can be automatically set each time. These settings seem to work OK with single sheets too.”
  32450. 6.9
  32451. Filing Systems
  32452. 6.9
  32453. Beebug 5¼“ disc interface
  32454. 6.9
  32455. Stuart Bell writes: “I got my Beebug 5¼“ disc interface (date 1989) to work by setting the step rate for an 80 track double-sided drive to 12ms (lower values may well work; I’m just cautious), and whereas RISC OS 2 worked with “Ready” (switch 6 on the interface) supplied by the on-board PAL, RISC OS 3 works more reliably with it passed through from the drive.”
  32456. 6.9
  32457. Dismounting between filing systems
  32458. 6.9
  32459. According to Mike Sawle, applications which frequently switch between filing systems seem to require the *DISMOUNT command before selecting an alternative filing system in order to ensure correct execution. Common error messages are Ambiguous Disc Name and Bad Error Block.
  32460. 6.9
  32461. Miscellaneous Hints & Tips
  32462. 6.9
  32463. •    Faster copying, etc. – Rob Davison recommends that if there is nothing else you want to do when copying files, then click <Menu> over the filer action window and choose ‘Faster’.
  32464. 6.9
  32465. •    In the midnight hour – Atle Mjelde Bårdholt found that, whenever he switched his computer on between midnight and 1 a.m., a day was added to the internal clock. He then found that this seemed to be caused by the presence in his !Boot file of the command *Set Sys$Year 1993 (which he had included because he has some programs that set the year back to 1988). When this command is removed, the midnight hour problem goes away. Does anyone know the reason?
  32466. 6.9
  32467. •    Fan filters and the A5000 – Tom Rank found that, although magazines mention the need to change the filter from time to time, there was no mention of how to do this and on fitting the RISC OS 3.10 upgrade he could see no filter anyway. Is there one, he asks? The Acorn representative at BETT told him that the design of the machine made it superfluous; he couldn’t quite follow why, but it was something to do with the direction of airflow.
  32468. 6.9
  32469. •    Flippin’ objects in Draw – Having travelled all the way from Derbyshire to the Acorn User Show, Tom Rank “asked the man on one of the other magazines’ stall if there was an equivalent in Draw to the ‘flip’ option in Paint, as it’s sometimes useful to turn a picture round to face the other way. The expert, although helpful about other items, couldn’t tell me, but my son revealed the following tip, which he said he thought was obvious. Must talk to him more often....
  32470. 6.9
  32471. “To flip an object in Draw, select it and, from the ‘transform’ menu (RISC OS 3), set x scale (or y scale or both) to −1 (minus 1). This also works in the RISC OS 2 version of Draw but there the ‘transform’ option is chosen from the Select menu.”
  32472. 6.9
  32473. •    Lost lines in Edit − Eric Ayers has found that double-clicking on large text files to load them into Edit has caused several lines to be missing from the middle of the text. Apparently, this does not happen if he drags the files to the Edit icon on the icon bar. Any ideas?
  32474. 6.9
  32475. •    More fonts in RISC-OS 3 − Gary Atkinson of KudlianSoft recommends the following additions to the !Fonts.!Boot and !Fonts.!Run files to enable one or more separate font directories to be added to and removed from the font path simply by double-clicking on the fonts application directory.
  32476. 6.9
  32477. The !Fonts.!Boot file should be amended as follows:
  32478. 6.9
  32479. | Boot file for !Fonts.
  32480. 6.9
  32481. | Nothing happens if you put this in | a RISC OS 2 machine except that
  32482. 6.9
  32483. | the !Fonts sprite is set up − this | means that, when a RISC OS2 !Fonts
  32484. 6.9
  32485. | directory is seen the !Boot file
  32486. 6.9
  32487. | will not be run; double clicking
  32488. 6.9
  32489. | on the appropriate !Fonts will
  32490. 6.9
  32491. | force installation.
  32492. 6.9
  32493. |
  32494. 6.9
  32495. | Take care when merging RISC OS 2
  32496. 6.9
  32497. | fonts with these (RISC OS 3) fonts
  32498. 6.9
  32499. | - many fonts are contained in the
  32500. 6.9
  32501. | RISC OS 3 ROM and thus do not
  32502. 6.9
  32503. | appear in !Fonts; normally you
  32504. 6.9
  32505. | should not copy the corresponding
  32506. 6.9
  32507. | RISC OS 2 fonts!
  32508. 6.9
  32509. Iconsprites <Obey$Dir>.!Sprites
  32510. 6.9
  32511. RMEnsure FontManager 2.89 Obey
  32512. 6.9
  32513. | The next command boots up your
  32514. 6.9
  32515. | normal font directory
  32516. 6.9
  32517. FontInstall <Obey$Dir>.
  32518. 6.9
  32519. SetEval MoreFonts 0
  32520. 6.9
  32521. The !Fonts.!Run file should be amended as follows:
  32522. 6.9
  32523. | !Run file for !Fonts,
  32524. 6.9
  32525. | version 1.05 (20-Aug-91)
  32526. 6.9
  32527. RMEnsure FontManager 2.89 Error These fonts are for use with
  32528. 6.9
  32529.  RISC OS 2.12 or later
  32530. 6.9
  32531. |Obey <Obey$Dir>.!Boot
  32532. 6.9
  32533. | The extra *FontInstall means that,
  32534. 6.9
  32535. | if you double-click the Fonts
  32536. 6.9
  32537. | directory, all such directories
  32538. 6.9
  32539. | will be re-searched for any new
  32540. 6.9
  32541. | fonts.
  32542. 6.9
  32543. SetEval MoreFonts MoreFonts EOR 1
  32544. 6.9
  32545. IF MoreFonts=1 THEN FontInstall <Obey$Dir>. ELSE FontRemove <Obey$Dir>.
  32546. 6.9
  32547. |FontInstall
  32548. 6.9
  32549. The !Boot file is only run on the first time that the filer sees the !Fonts application, hence the initialisation of MoreFonts to zero. Every time the directory is double-clicked, the !Run file will toggle the value of this variable between 0 and 1. This is done in the line:
  32550. 6.9
  32551. SetEval MoreFonts MoreFonts EOR 1
  32552. 6.9
  32553. If the value is 1, the FontInstall command adds the new directory to the font path and initialises all of the fonts. If the value is 0, the FontRemove command removes the temporary font directory from the font path.
  32554. 6.9
  32555. If you require more than one spare directory, you will need to use different variables, such as MoreFonts2 or FancyFonts.
  32556. 6.9
  32557. In practice, it is better to have a directory called fonts inside your !Fonts application which contains your preferred normal fonts at switch-on, and a directory called spare (for example) which contains the set of fonts that you wish to switch in and out. Then in your !Boot file, the FontInstall command becomes
  32558. 6.9
  32559. FontInstall <Obey$Dir>.fonts.
  32560. 6.9
  32561. and the IF...THEN statement in the !Run file has <Obey$Dir>.spare. in place of the two occurrences of <Obey$Dir>. .
  32562. 6.9
  32563. Miscellaneous Comments
  32564. 6.9
  32565. FontEd
  32566. 6.9
  32567. When Tom Rank spoke to an Acorn representative he was told that they were not contemplating the release of FontEd and that it is NOT public domain. An early version got there by mistake via SID and it really ought not, he said, to be distributed by PD libraries.
  32568. 6.9
  32569. The Acorn representative acknowledged that Acorn were unlikely to do anything about this situation, as it was “only an early version and won’t work on RISC OS 3”. According to Tom this is partially true; a friend of his has had problems with version 0.28, but at least some of the time it runs on an A5000. However, he observes that it is a pity that Acorn actually seem to be discouraging anyone else from working on fonts. (There is a version of FontEd on Careware 7, released in May 1990, but it has been updated since then. Acorn haven’t objected, presumably because of the charitable aspect. Ed.)
  32570. 6.9
  32571. Screen blanking during floppy disc access
  32572. 6.9
  32573. Stuart Bell writes: “Many things are very much more elegant in RISC OS 3 but with one notable exception. I couldn’t believe my eyes when I saw what happens to the screen during floppy disc accessing. Whether my ARM3 cache is dis- or enabled, in mode 24 the screen either flashes or is blanked when loading, saving or formatting. If RISC OS 2 didn’t need to do this, why is it allowed now? (It did, in fact, happen in mode 21 under RISC OS 2 – HE.) Some re-coding is needed, even if the resultant code is a little slower. More significantly, who was the Acorn person in authority who thought that it is acceptable in 1993 to produce a computer which professes to be a ‘world-beater’ which, when using floppy discs, looks like the Sinclair Spectrum (or was it the ZX81?) reading from cassette tape circa 1983? This just looks so tacky. I know that serious use demands a hard disc, but first impressions count for a lot, and a lot of demonstrations will be on floppy-based A3010’s. This is not good enough, Acorn.”
  32574. 6.9
  32575. Basic program compaction errors
  32576. 6.9
  32577. R. W. Darlington writes: “I am writing on a matter of utmost urgency.
  32578. 6.9
  32579. “There seems to be a growing urge amongst programmers to use a program compactor on Basic RunImage files. Unfortunately, I know of no Basic compactor program that does not exhibit a certain disastrous fault.
  32580. 6.9
  32581. “If, for instance, a Basic program contains any floating point or pseudo variables followed by a Basic keyword or statement, then when it is compacted and the space between the variable and the keyword is removed, that line will generate an error.
  32582. 6.9
  32583. “For instance, if the program contained the line
  32584. 6.9
  32585. 10 IF TRUE THEN VDU7
  32586. 6.9
  32587. which when compacted becomes
  32588. 6.9
  32589. 10IFTRUETHENVDU7
  32590. 6.9
  32591. the lack of space between TRUE and THEN will generate an error.
  32592. 6.9
  32593. “The same is true for any line containing a floating point variable:
  32594. 6.9
  32595. 10 ha=TRUE
  32596. 6.9
  32597. 20 IF    ha    THEN    VDU7
  32598. 6.9
  32599. will crash when compacted because of a lack of space between ha and THEN.
  32600. 6.9
  32601. “I have come across numerous examples of RunImage files which have these errors in them. One of them is Acorn’s new RISC OS 3 !SciCalc. Others are new versions of Translator and Creator.
  32602. 6.9
  32603. “Please can you draw Archive readers’ attention to these problems as soon as possible? Or, if any reader knows of a Basic compactor that does not produce these errors, please can they let us know where it may be obtained?”
  32604. 6.9
  32605. Matters Arising
  32606. 6.9
  32607. Setting Caps Lock (*FX 202)
  32608. 6.9
  32609. Unfortunately, the advice I gave last month about using *FX 202 may have been a bit confusing because, after explaining that Peter Young wanted a command to turn Caps Lock on, I then described how to turn it off! The command to turn Caps Lock on, leaving the other settings unchanged, is *FX 202,0,239.
  32610. 6.9
  32611. The shortened form *FX 202,32 should turn Caps Lock on, but may have side effects.
  32612. 6.9
  32613. Note also that, to make sure that the LED indicators are correctly updated after a *FX 202 command, it is a good idea to follow it with the simple command *FX 118.
  32614. 6.9
  32615. The bits of the keyboard status byte have the following meanings:
  32616. 6.9
  32617.     bit    value    meaning
  32618. 6.9
  32619.     0 (1)    0    Alt off
  32620. 6.9
  32621.         1    Alt on
  32622. 6.9
  32623.     1 (2)    0    Scroll Lock off
  32624. 6.9
  32625.         1    Scroll Lock on
  32626. 6.9
  32627.     2 (4)    0    Num Lock on
  32628. 6.9
  32629.         1    Num Lock off
  32630. 6.9
  32631.     3 (8)    0    Shift off
  32632. 6.9
  32633.         1    Shift on
  32634. 6.9
  32635.     4 (16)    0    Caps Lock on
  32636. 6.9
  32637.         1    Caps Lock off
  32638. 6.9
  32639.     5 (32)        (“Normally set”)
  32640. 6.9
  32641.     6 (64)    0    Ctrl off
  32642. 6.9
  32643.         1    Ctrl on
  32644. 6.9
  32645.     7 (128)    0    Shift enable off
  32646. 6.9
  32647.         1    Shift enable on
  32648. 6.9
  32649. (This information is taken from the RISC­OS 2 Programmers’ Reference Manual.)
  32650. 6.9
  32651. Boot-up options (Archive 6.8 p26)
  32652. 6.9
  32653. Peter Young has suggested that it might be better to use INKEY$ with a delay of, say, 5 to 10 seconds instead of GET$ so that, if nobody presses a key, the computer will continue with the boot file after a short delay.
  32654. 6.9
  32655. Unexpected messages from IDE filing system (Archive 6.8 p24)
  32656. 6.9
  32657. Peter Young (who has a Beebug IDE interface) has confirmed that, even after creating space for a directory cache, he still gets unexpected messages unless he uses full pathnames. For instance, if he starts with the commands
  32658. 6.9
  32659. *DIR IDEFS::IDEDisc4.$.BASIC.B
  32660. 6.9
  32661. *CAT
  32662. 6.9
  32663. he gets a catalogue of the subdirectory ‘B’ as expected. However, if he uses the abbreviated pathname instead:
  32664. 6.9
  32665. *DIR $.BASIC.B
  32666. 6.9
  32667. *CAT
  32668. 6.9
  32669. he gets a catalogue of the directory ‘BASIC’ even though the heading of the directory listing correctly says that the CSD is IDEFS::IDEDisc4.$. BASIC.B. The computer’s confusion is further demonstrated by the fact that if he then enters:
  32670. 6.9
  32671. *DIR ^
  32672. 6.9
  32673. *CAT
  32674. 6.9
  32675. it replies Directory ‘@’ not found.
  32676. 6.9
  32677. ‘Interrupt’ module (Archive 6.6 p55)
  32678. 6.9
  32679. In March, we reported M. P. Sawle’s request for help in getting the Interrupt module (Archive Shareware disc 6) working under RISC OS 3, but since then neither he nor we have heard anything. Does no-one else use this module? Can its author help?
  32680. 6.9
  32681. Using RISC OS 3.10
  32682. 6.9
  32683. Hugh Eagle
  32684. 6.9
  32685. More encouragement for the faint-hearted!
  32686. 6.9
  32687. Stuart Bell says: “Having read the RISC OS Column for the past few
  32688. months, I approached the upgrade with caution, afraid of all sorts of
  32689. installation and compatibility problems. I guess that by the nature of
  32690. the things, it’s those people who encounter problems who write in,
  32691. thereby giving a false impression of the true situation. So, if you’re
  32692. still with RISC OS 2 and thinking about upgrading, be encouraged.
  32693. Installing RISC OS 3 on my A310, including removing the main board and
  32694. installing the IFEL ROM carrier board took about an hour from start to
  32695. finish, and I experienced no unforeseen problems.
  32696. 6.9
  32697. “Having been warned of problems with Compression 1.1, I de-compressed
  32698. all files first. I await the free upgrade from CC. There is the reported
  32699. problem with early versions of Font-FX and that’s in hand.
  32700. 6.9
  32701. “A couple of warnings, though: As well as powering up with <Delete>
  32702. depressed, also make sure that you’ve re-connected the keyboard first.
  32703. (Don’t laugh – it could have been you! That cost me several minutes of
  32704. panic.) Secondly, alter the Font Size figure before loading your first
  32705. Impression document, which otherwise can take several minutes to load
  32706. with a 32Kb buffer.”
  32707. 6.9
  32708. • Avie Electronics 4Mb A310 upgrade − The following information has come
  32709. from Avie: LK12 should be altered to 1-3 and 2-4. Issue 1 PCBs do not
  32710. have LK12 and require modification as follows:
  32711. 6.9
  32712. Option 1: pins 2 and 24 on all of the ROMs are to be swapped. Remove
  32713. pins 2 and 24 from each ROM socket by bending them up. Join pin 24 on
  32714. all ROMs to GND. Join pin 2 on all ROMs to LA18 on IC28, pin 18.
  32715. 6.9
  32716. Option 2: remove pin 2 from each stamped socket on PCB and strap a wire
  32717. between the pins and LA18. Likewise, pin 24 can be strapped to GND after
  32718. removing the pins in the stamped sockets.
  32719. 6.9
  32720. Hardware problems
  32721. 6.9
  32722. Watford Electronics ARM3 − When Colin Wood fitted a Watford Electronics
  32723. ARM3 upgrade to his A410 it didn’t work. “The screen flashed red/blue,
  32724. but no beep. Just dead.” As he had recently fitted RISC OS 3, he decided
  32725. to replace the RISC OS 2 chips and everything seemed OK, but when he put
  32726. the RISC OS 3 chips back, again it didn’t work. Watford’s help line
  32727. couldn’t help, so he returned the ARM3 and since they were (again) out
  32728. of stock he cancelled his order and got most (but not all, apparently)
  32729. of his money back. Another ARM3, from CJE Micro’s, worked first time.
  32730. 6.9
  32731. Watford A310 RAM upgrades − Watford Electronics say that they are aware
  32732. that their early A305/310 RAM upgrades do not work with RISC OS 3 but
  32733. they do not have any solution. They simply recommend that you buy one of
  32734. their newer RAM upgrades instead because they do work with RISC OS 3.
  32735. Fortunately, IFEL have stepped into the breach. They can offer new PAL
  32736. chips to plug into the Watford boards that will solve the problem. These
  32737. PAL chips are £3 +VAT each from IFEL and you need to state whether you
  32738. have the 2Mb or the 4Mb version. (This refers to the upgrades that
  32739. consisted of two PCBs with a ribbon cable along the RHS of the machine.)
  32740. 6.9
  32741. Program problems
  32742. 6.9
  32743. QuicKey clash − J. Nichols reports that, if QuicKey is loaded from
  32744. within a !Boot file, it can remove the *Opt 4,2 status from the booted
  32745. disc resulting in a disc which no longer runs a !Boot file.
  32746. 6.9
  32747. !Edit – Following last month’s reports of a “bug” in Edit we now have
  32748. the following from Tom Rank: “There seemed to be a rare problem with
  32749. Edit the other day; my text (exported from Ovation) was displayed in a
  32750. most corrupted way, with a large amount of blank screen to start with
  32751. and then disintegrating words. I thought it was a problem with Ovation.
  32752. However, when I tried to show it to John Wallace of Risc Developments at
  32753. BETT, the file displayed without problems, as it did back on my own
  32754. machine the next day. Any idea why?”
  32755. 6.9
  32756. Fun School 4 (for the under 5s) – Tom Rank found that this ran under
  32757. RISC OS 3.00 but not 3.10, but Europress Software supplied an updated
  32758. disc very promptly which now works.
  32759. 6.9
  32760. Freddy Teddy – Topologika supplied a new version to Tom Rank on the spot
  32761. at BETT!
  32762. 6.9
  32763. Ovation – Tom Rank says you are urged to obtain 1.37S (dated 17 January
  32764. 1993). This overcomes the saving with <F3> problem – which really was a
  32765. problem, so do upgrade. They have also restored the ‘select all’
  32766. shortcut − but only if you use the right-hand <Ctrl> key along with A
  32767. (to avoid the problem of catching <Ctrl-A> instead of <Ctrl-S> or just
  32768. <A>).
  32769. 6.9
  32770. This version also contains three new printing options, not documented:
  32771. Fit, Centre and Registration marks. These should be self explanatory,
  32772. but Tom is not quite sure about them!
  32773. 6.9
  32774. Break147 and SuperPool – D. S. Allen got these to work using the
  32775. information provided by David Holden in the April column. He writes: “In
  32776. Break147 there is one Basic program called !Snook which contains the
  32777. line
  32778. 6.9
  32779.  90SYS 26,64,64.
  32780. 6.9
  32781. A REM statement in front of the SYS will cure the problem and the
  32782. program will then run under RISC OS 3.1.
  32783. 6.9
  32784. “Similarly, in SuperPool there is a Basic program !Pool in the Data
  32785. directory in which line 60 has the same SYS 26,64,64 statement.
  32786. 6.9
  32787. “Note that to make these changes, people will require the read/write
  32788. version of Mark Smith’s excellent ArcFS program.” (Or, presumably, an
  32789. equivalent utility such as SparkFS.)
  32790. 6.9
  32791. Superior Golf / Construction Set – We reported in Archive 6.7 p43 that
  32792. Dave Wilcox had found that these did not work in RISC OS 3.10. Rob
  32793. Brown, however, says he has had no problems with them.
  32794. 6.9
  32795. Corruption – Rob Brown says that this can be made to work by modifying
  32796. its !Run file to kill the RISC OS 3 Shared C Library module and load the
  32797. very old version of the module supplied with the game. To do this,
  32798. include at the beginning of the !Run file the line:
  32799. 6.9
  32800. RMKill SharedCLibrary
  32801. 6.9
  32802. and then add at the end of the file the following two lines:
  32803. 6.9
  32804. RMKill SharedCLibrary
  32805. 6.9
  32806. RMLoad SharedCLibrary
  32807. 6.9
  32808. to remove the old version and reload the RISC OS 3 version of the
  32809. module. He points out that it may well be advisable to Quit any other
  32810. applications that may be using the RISC OS 3 Shared C Library module
  32811. before running the game.
  32812. 6.9
  32813. Freddy’s Folly – Rob Brown advises that this game contains a !Run file
  32814. (in Basic) which includes an automatic ‘auto-configuration’ of the
  32815. computer’s memory as well as setting up a number of initial program
  32816. parameters. The various auto-configuration elements should be deleted
  32817. from this file. A further complication is that the disc is copy
  32818. protected, but it should be possible to rename the original !Run file
  32819. (to say !RunOLD) and re-save a new !Run file containing only the initial
  32820. program parameters. He also advises that the game assumes that the
  32821. default disc drive is 0. For users with a hard disc this can easily be
  32822. set by typing:
  32823. 6.9
  32824.     Drive 0
  32825. 6.9
  32826. at the command line (accessed by pressing function key <F12>) before
  32827. starting the game. Alternatively, the game’s !Run file can be
  32828. appropriately amended by including the “<Obey$Dir>” command.
  32829. 6.9
  32830. NOTE: the advice on Corruption and Freddy’s Folly is included in the
  32831. program compatibility chart which Rob Brown has compiled and which has
  32832. been included on the Archive monthly program disc. He will welcome any
  32833. information which will help him to make the chart as comprehensive and
  32834. up-to-date as possible. His address is “Valtanee”, Brighton Road, Lower
  32835. Kingswood, Tadworth, Surrey, KT20 6UP.
  32836. 6.9
  32837. Aldebaran – (see Archive 6.8 p23) Atle Mjelde Bårdholt has contacted the
  32838. author and has learned that, on his A310 with IFEL’s 2Mb upgrade, he has
  32839. to add 8Kb to the WimpSlot values in the !Aldebaran.!Run file (from
  32840. 624Kb to 632Kb). Then everything works fine. He says this might be due
  32841. to the RAM upgrade: Aldebaran seems to work fine on any other Archimedes
  32842. with RISC OS 3.1. He adds a final bit of advice: “Get a copy!”
  32843. 6.9
  32844. Printing
  32845. 6.9
  32846. Printing to file
  32847. 6.9
  32848. Tom Rank has found that the hint from Simon Moy in Archive 6.2.7 about
  32849. editing the number of text lines seems redundant under RISC OS 3.10, and
  32850. that printing to a file (at least with the Epson LQ-860 driver) resulted
  32851. in a printout which aborted with an “address exception at &038B5BE0”, a
  32852. frozen printer and an incomplete document (the last few millimetres were
  32853. lost). This is particularly irritating as printing to a file is the only
  32854. way, apart from buying a direct laser printer or a CC Turbo Driver, to
  32855. avoid the long wait for print out. (How about using the PROdriver shell
  32856. for use with Acorn drivers? See the review on page 43. Ed.)
  32857. 6.9
  32858. Using fanfold paper
  32859. 6.9
  32860. Tom Rank comments: “Feeding single sheets into a printer soon becomes a
  32861. pain, but sheetfeeders come expensive, so A4 fanfold paper seemed a good
  32862. idea (even though it’s about four or five times more expensive than
  32863. better quality photocopy paper at a discount stationer!). However, with
  32864. RISC OS 3.00, I could never get the settings right, so the print always
  32865. crept up or down the page until it crossed the fold. With RISC OS 3.10,
  32866. I’ve finally got it to work, whether by fluke I’m not sure. Using the
  32867. LQ-860 printer driver with my Epson LQ-550 printer, the correct settings
  32868. from the paper sizes menu are: top margin 8mm and bottom margin 15mm;
  32869. save these with a name like ‘A4 Fanfold’ and the margins can be
  32870. automatically set each time. These settings seem to work OK with single
  32871. sheets too.”
  32872. 6.9
  32873. Filing Systems
  32874. 6.9
  32875. Beebug 5¼“ disc interface
  32876. 6.9
  32877. Stuart Bell writes: “I got my Beebug 5¼“ disc interface (date 1989) to
  32878. work by setting the step rate for an 80 track double-sided drive to 12ms
  32879. (lower values may well work; I’m just cautious), and whereas RISC OS 2
  32880. worked with “Ready” (switch 6 on the interface) supplied by the on-board
  32881. PAL, RISC OS 3 works more reliably with it passed through from the
  32882. drive.”
  32883. 6.9
  32884. Dismounting between filing systems
  32885. 6.9
  32886. According to Mike Sawle, applications which frequently switch between
  32887. filing systems seem to require the *DISMOUNT command before selecting an
  32888. alternative filing system in order to ensure correct execution. Common
  32889. error messages are Ambiguous Disc Name and Bad Error Block.
  32890. 6.9
  32891. Miscellaneous Hints & Tips
  32892. 6.9
  32893. •    Faster copying, etc. – Rob Davison recommends that if there is nothing
  32894. else you want to do when copying files, then click <Menu> over the filer
  32895. action window and choose ‘Faster’.
  32896. 6.9
  32897. •    In the midnight hour – Atle Mjelde Bårdholt found that, whenever he
  32898. switched his computer on between midnight and 1 a.m., a day was added to
  32899. the internal clock. He then found that this seemed to be caused by the
  32900. presence in his !Boot file of the command *Set Sys$Year 1993 (which he
  32901. had included because he has some programs that set the year back to
  32902. 1988). When this command is removed, the midnight hour problem goes
  32903. away. Does anyone know the reason?
  32904. 6.9
  32905. •    Fan filters and the A5000 – Tom Rank found that, although magazines
  32906. mention the need to change the filter from time to time, there was no
  32907. mention of how to do this and on fitting the RISC OS 3.10 upgrade he
  32908. could see no filter anyway. Is there one, he asks? The Acorn
  32909. representative at BETT told him that the design of the machine made it
  32910. superfluous; he couldn’t quite follow why, but it was something to do
  32911. with the direction of airflow.
  32912. 6.9
  32913. •    Flippin’ objects in Draw – Having travelled all the way from
  32914. Derbyshire to the Acorn User Show, Tom Rank “asked the man on one of the
  32915. other magazines’ stall if there was an equivalent in Draw to the ‘flip’
  32916. option in Paint, as it’s sometimes useful to turn a picture round to
  32917. face the other way. The expert, although helpful about other items,
  32918. couldn’t tell me, but my son revealed the following tip, which he said
  32919. he thought was obvious. Must talk to him more often....
  32920. 6.9
  32921. “To flip an object in Draw, select it and, from the ‘transform’ menu
  32922. (RISC OS 3), set x scale (or y scale or both) to −1 (minus 1). This also
  32923. works in the RISC OS 2 version of Draw but there the ‘transform’ option
  32924. is chosen from the Select menu.”
  32925. 6.9
  32926. •    Lost lines in Edit − Eric Ayers has found that double-clicking on
  32927. large text files to load them into Edit has caused several lines to be
  32928. missing from the middle of the text. Apparently, this does not happen if
  32929. he drags the files to the Edit icon on the icon bar. Any ideas?
  32930. 6.9
  32931. •    More fonts in RISC-OS 3 − Gary Atkinson of KudlianSoft recommends the
  32932. following additions to the !Fonts.!Boot and !Fonts.!Run files to enable
  32933. one or more separate font directories to be added to and removed from
  32934. the font path simply by double-clicking on the fonts application
  32935. directory.
  32936. 6.9
  32937. The !Fonts.!Boot file should be amended as follows:
  32938. 6.9
  32939. | Boot file for !Fonts.
  32940. 6.9
  32941. | Nothing happens if you put this in | a RISC OS 2 machine except that
  32942. 6.9
  32943. | the !Fonts sprite is set up − this | means that, when a RISC OS2
  32944. !Fonts
  32945. 6.9
  32946. | directory is seen the !Boot file
  32947. 6.9
  32948. | will not be run; double clicking
  32949. 6.9
  32950. | on the appropriate !Fonts will
  32951. 6.9
  32952. | force installation.
  32953. 6.9
  32954. |
  32955. 6.9
  32956. | Take care when merging RISC OS 2
  32957. 6.9
  32958. | fonts with these (RISC OS 3) fonts
  32959. 6.9
  32960. | - many fonts are contained in the
  32961. 6.9
  32962. | RISC OS 3 ROM and thus do not
  32963. 6.9
  32964. | appear in !Fonts; normally you
  32965. 6.9
  32966. | should not copy the corresponding
  32967. 6.9
  32968. | RISC OS 2 fonts!
  32969. 6.9
  32970. Iconsprites <Obey$Dir>.!Sprites
  32971. 6.9
  32972. RMEnsure FontManager 2.89 Obey
  32973. 6.9
  32974. | The next command boots up your
  32975. 6.9
  32976. | normal font directory
  32977. 6.9
  32978. FontInstall <Obey$Dir>.
  32979. 6.9
  32980. SetEval MoreFonts 0
  32981. 6.9
  32982. The !Fonts.!Run file should be amended as follows:
  32983. 6.9
  32984. | !Run file for !Fonts,
  32985. 6.9
  32986. | version 1.05 (20-Aug-91)
  32987. 6.9
  32988. RMEnsure FontManager 2.89 Error These fonts are for use with
  32989. 6.9
  32990.  RISC OS 2.12 or later
  32991. 6.9
  32992. |Obey <Obey$Dir>.!Boot
  32993. 6.9
  32994. | The extra *FontInstall means that,
  32995. 6.9
  32996. | if you double-click the Fonts
  32997. 6.9
  32998. | directory, all such directories
  32999. 6.9
  33000. | will be re-searched for any new
  33001. 6.9
  33002. | fonts.
  33003. 6.9
  33004. SetEval MoreFonts MoreFonts EOR 1
  33005. 6.9
  33006. IF MoreFonts=1 THEN FontInstall <Obey$Dir>. ELSE FontRemove <Obey$Dir>.
  33007. 6.9
  33008. |FontInstall
  33009. 6.9
  33010. The !Boot file is only run on the first time that the filer sees the
  33011. !Fonts application, hence the initialisation of MoreFonts to zero. Every
  33012. time the directory is double-clicked, the !Run file will toggle the
  33013. value of this variable between 0 and 1. This is done in the line:
  33014. 6.9
  33015. SetEval MoreFonts MoreFonts EOR 1
  33016. 6.9
  33017. If the value is 1, the FontInstall command adds the new directory to the
  33018. font path and initialises all of the fonts. If the value is 0, the
  33019. FontRemove command removes the temporary font directory from the font
  33020. path.
  33021. 6.9
  33022. If you require more than one spare directory, you will need to use
  33023. different variables, such as MoreFonts2 or FancyFonts.
  33024. 6.9
  33025. In practice, it is better to have a directory called fonts inside your
  33026. !Fonts application which contains your preferred normal fonts at switch-
  33027. on, and a directory called spare (for example) which contains the set of
  33028. fonts that you wish to switch in and out. Then in your !Boot file, the
  33029. FontInstall command becomes
  33030. 6.9
  33031. FontInstall <Obey$Dir>.fonts.
  33032. 6.9
  33033. and the IF...THEN statement in the !Run file has <Obey$Dir>.spare. in
  33034. place of the two occurrences of <Obey$Dir>. .
  33035. 6.9
  33036. Miscellaneous Comments
  33037. 6.9
  33038. FontEd
  33039. 6.9
  33040. When Tom Rank spoke to an Acorn representative he was told that they
  33041. were not contemplating the release of FontEd and that it is NOT public
  33042. domain. An early version got there by mistake via SID and it really
  33043. ought not, he said, to be distributed by PD libraries.
  33044. 6.9
  33045. The Acorn representative acknowledged that Acorn were unlikely to do
  33046. anything about this situation, as it was “only an early version and
  33047. won’t work on RISC OS 3”. According to Tom this is partially true; a
  33048. friend of his has had problems with version 0.28, but at least some of
  33049. the time it runs on an A5000. However, he observes that it is a pity
  33050. that Acorn actually seem to be discouraging anyone else from working on
  33051. fonts. (There is a version of FontEd on Careware 7, released in May
  33052. 1990, but it has been updated since then. Acorn haven’t objected,
  33053. presumably because of the charitable aspect. Ed.)
  33054. 6.9
  33055. Screen blanking during floppy disc access
  33056. 6.9
  33057. Stuart Bell writes: “Many things are very much more elegant in RISC OS 3
  33058. but with one notable exception. I couldn’t believe my eyes when I saw
  33059. what happens to the screen during floppy disc accessing. Whether my ARM3
  33060. cache is dis- or enabled, in mode 24 the screen either flashes or is
  33061. blanked when loading, saving or formatting. If RISC OS 2 didn’t need to
  33062. do this, why is it allowed now? (It did, in fact, happen in mode 21
  33063. under RISC OS 2 – HE.) Some re-coding is needed, even if the resultant
  33064. code is a little slower. More significantly, who was the Acorn person in
  33065. authority who thought that it is acceptable in 1993 to produce a
  33066. computer which professes to be a ‘world-beater’ which, when using floppy
  33067. discs, looks like the Sinclair Spectrum (or was it the ZX81?) reading
  33068. from cassette tape circa 1983? This just looks so tacky. I know that
  33069. serious use demands a hard disc, but first impressions count for a lot,
  33070. and a lot of demonstrations will be on floppy-based A3010’s. This is not
  33071. good enough, Acorn.”
  33072. 6.9
  33073. Basic program compaction errors
  33074. 6.9
  33075. R. W. Darlington writes: “I am writing on a matter of utmost urgency.
  33076. 6.9
  33077. “There seems to be a growing urge amongst programmers to use a program
  33078. compactor on Basic RunImage files. Unfortunately, I know of no Basic
  33079. compactor program that does not exhibit a certain disastrous fault.
  33080. 6.9
  33081. “If, for instance, a Basic program contains any floating point or pseudo
  33082. variables followed by a Basic keyword or statement, then when it is
  33083. compacted and the space between the variable and the keyword is removed,
  33084. that line will generate an error.
  33085. 6.9
  33086. “For instance, if the program contained the line
  33087. 6.9
  33088. 10 IF TRUE THEN VDU7
  33089. 6.9
  33090. which when compacted becomes
  33091. 6.9
  33092. 10IFTRUETHENVDU7
  33093. 6.9
  33094. the lack of space between TRUE and THEN will generate an error.
  33095. 6.9
  33096. “The same is true for any line containing a floating point variable:
  33097. 6.9
  33098. 10 ha=TRUE
  33099. 6.9
  33100. 20 IF    ha    THEN    VDU7
  33101. 6.9
  33102. will crash when compacted because of a lack of space between ha and
  33103. THEN.
  33104. 6.9
  33105. “I have come across numerous examples of RunImage files which have these
  33106. errors in them. One of them is Acorn’s new RISC OS 3 !SciCalc. Others
  33107. are new versions of Translator and Creator.
  33108. 6.9
  33109. “Please can you draw Archive readers’ attention to these problems as
  33110. soon as possible? Or, if any reader knows of a Basic compactor that does
  33111. not produce these errors, please can they let us know where it may be
  33112. obtained?”
  33113. 6.9
  33114. Matters Arising
  33115. 6.9
  33116. Setting Caps Lock (*FX 202)
  33117. 6.9
  33118. Unfortunately, the advice I gave last month about using *FX 202 may have
  33119. been a bit confusing because, after explaining that Peter Young wanted a
  33120. command to turn Caps Lock on, I then described how to turn it off! The
  33121. command to turn Caps Lock on, leaving the other settings unchanged, is
  33122. *FX 202,0,239.
  33123. 6.9
  33124. The shortened form *FX 202,32 should turn Caps Lock on, but may have
  33125. side effects.
  33126. 6.9
  33127. Note also that, to make sure that the LED indicators are correctly
  33128. updated after a *FX 202 command, it is a good idea to follow it with the
  33129. simple command *FX 118.
  33130. 6.9
  33131. The bits of the keyboard status byte have the following meanings:
  33132. 6.9
  33133.     bit    value    meaning
  33134. 6.9
  33135.     0 (1)    0    Alt off
  33136. 6.9
  33137.         1    Alt on
  33138. 6.9
  33139.     1 (2)    0    Scroll Lock off
  33140. 6.9
  33141.         1    Scroll Lock on
  33142. 6.9
  33143.     2 (4)    0    Num Lock on
  33144. 6.9
  33145.         1    Num Lock off
  33146. 6.9
  33147.     3 (8)    0    Shift off
  33148. 6.9
  33149.         1    Shift on
  33150. 6.9
  33151.     4 (16)    0    Caps Lock on
  33152. 6.9
  33153.         1    Caps Lock off
  33154. 6.9
  33155.     5 (32)        (“Normally set”)
  33156. 6.9
  33157.     6 (64)    0    Ctrl off
  33158. 6.9
  33159.         1    Ctrl on
  33160. 6.9
  33161.     7 (128)    0    Shift enable off
  33162. 6.9
  33163.         1    Shift enable on
  33164. 6.9
  33165. (This information is taken from the RISC­OS 2 Programmers’ Reference
  33166. Manual.)
  33167. 6.9
  33168. Boot-up options (Archive 6.8 p26)
  33169. 6.9
  33170. Peter Young has suggested that it might be better to use INKEY$ with a
  33171. delay of, say, 5 to 10 seconds instead of GET$ so that, if nobody
  33172. presses a key, the computer will continue with the boot file after a
  33173. short delay.
  33174. 6.9
  33175. Unexpected messages from IDE filing system (Archive 6.8 p24)
  33176. 6.9
  33177. Peter Young (who has a Beebug IDE interface) has confirmed that, even
  33178. after creating space for a directory cache, he still gets unexpected
  33179. messages unless he uses full pathnames. For instance, if he starts with
  33180. the commands
  33181. 6.9
  33182. *DIR IDEFS::IDEDisc4.$.BASIC.B
  33183. 6.9
  33184. *CAT
  33185. 6.9
  33186. he gets a catalogue of the subdirectory ‘B’ as expected. However, if he
  33187. uses the abbreviated pathname instead:
  33188. 6.9
  33189. *DIR $.BASIC.B
  33190. 6.9
  33191. *CAT
  33192. 6.9
  33193. he gets a catalogue of the directory ‘BASIC’ even though the heading of
  33194. the directory listing correctly says that the CSD is IDEFS::IDEDisc4.$.
  33195. BASIC.B. The computer’s confusion is further demonstrated by the fact
  33196. that if he then enters:
  33197. 6.9
  33198. *DIR ^
  33199. 6.9
  33200. *CAT
  33201. 6.9
  33202. it replies Directory ‘@’ not found.
  33203. 6.9
  33204. ‘Interrupt’ module (Archive 6.6 p55)
  33205. 6.9
  33206. In March, we reported M. P. Sawle’s request for help in getting the
  33207. Interrupt module (Archive Shareware disc 6) working under RISC OS 3, but
  33208. since then neither he nor we have heard anything. Does no-one else use
  33209. this module? Can its author help?
  33210. 6.9
  33211.  
  33212. Using RISC OS 3
  33213. 6.10
  33214. Program points
  33215. 6.10
  33216. •    QuicKey – Last month (Archive 6.9 p 61), we reported a problem with
  33217. this program. Ian Copestake has written to say that this problem was
  33218. cured by an update released in April 1992 – over a year ago! – and was
  33219. caused by a bug in RISC OS 3. He says that customers can always obtain
  33220. minor updates like this by returning their original disc plus £1 worth
  33221. of postage stamps (or a reasonable overseas equivalent). He also asks if
  33222. contributors can check that they have up-to-date versions before
  33223. reporting problems.
  33224. 6.10
  33225. •    Fourth Dimension games – A. H. Hunt had a problem with Black Angel
  33226. (“one of the casket segments was missing at the Planet Valve (23%)”) but
  33227. this was rectified by 4D immediately. He also says that Break147 and
  33228. Saloon Cars run (for him) without any problems.
  33229. 6.10
  33230. However, Arthur Taylor found that the hint by D. S. Allen in Archive 6.9
  33231. p62 on Break147 and SuperPool didn’t work for him. Perhaps
  33232. significantly, the relevant line of the Basic program was line 100 not
  33233. line 90 in his copy, and also his program wasn’t compressed but was
  33234. heavily protected. (I wonder whether the version of Break147 which A. H.
  33235. Hunt has would work on his machine, and whether Fourth Dimension can
  33236. supply it?)
  33237. 6.10
  33238. •    Rotor − This game from Arcana does not work on RISC OS 3 and Arcana
  33239. have, apparently, gone bust. Fortunately, Superior Software have bought
  33240. out the rights to the program and sell it as part of their “Play it
  33241. Again, Sam 1” compilation. Apparently, if you send your Arcana version
  33242. of Rotor to Superior with a cheque for £10, they will send you a copy of
  33243. Play it Again, Sam 1.  John Waddell, Renfrewshire.
  33244. 6.10
  33245. •    Recommended programs (which do work) – Arthur Taylor strongly
  33246. recommends Simon Burrows’ FontsPlus: he has created four fonts
  33247. directories and with FontsPlus on the iconbar he can choose to have all
  33248. or none of them active (if none, the ROM fonts are still available); if
  33249. he doesn’t load FontsPlus, then they are all available “... simple as
  33250. that!”
  33251. 6.10
  33252. He says that other PD or shareware programs that seem to work fine with
  33253. RISC OS 3.10 include: DiskBase v0.65, DiskCat v1.50 (disc cataloguers),
  33254. FuncKeys v2.02 and KeyWindow v1.40 (keystrips and keys from the desktop)
  33255. and a super neat new mode changer from Dave Thomas: !Mode v1.03 – it can
  33256. store up to 8 modes in a small desktop window and seems very well
  33257. behaved.
  33258. 6.10
  33259. •    Watford scanner − In Archive 6.8 p27, we reported problems with the
  33260. Watford Handscanner (1990, issue 2). Apparently, there is an upgrade to
  33261. the software (version 1.1) available from Watford.  D Webb, Cumbernauld.
  33262. 6.10
  33263. Disc drive problems
  33264. 6.10
  33265. •    360Kb PC discs − Richard Fallas writes: “While trying to transfer data
  33266. to the hard drive of an old PC recently, I discovered that there are no
  33267. hard and fast rules about compatibility with 40 track discs. Previously,
  33268. I had used my switchable 40/80 track 5¼“ drive (with Beebug Interface)
  33269. under the emulator, having set up a suitable device in the config.sys
  33270. file. This no longer works under RISC OS 3.10, so I tried to transfer
  33271. directly.
  33272. 6.10
  33273. “The disc format was correctly identified and the files written (with
  33274. switch set to 80 track) without hitch, but the PC didn’t want to read
  33275. them (using copy *.*), although it would give me the directory listing.
  33276. 6.10
  33277. “Being stubborn, I tried again, saving and copying file by file. This
  33278. worked... sometimes! The longer the file the greater the chance of a
  33279. glitch, but eventually I got all the files across. This worked on files
  33280. up to 75Kb in size, so persevere!”
  33281. 6.10
  33282. •    IDE drives – Arthur Taylor advises that you should not assume that the
  33283. IDE support built into RISC OS 3 will work with an IDE drive that has
  33284. been added to a pre-A5000 computer. He found with his IDE drive supplied
  33285. by DT that he had to set the number of IDE discs to zero in !Configure
  33286. and then run DT’s setup, after which he had no problems.
  33287. 6.10
  33288. •    ST506 drive fitted to an A3000 – Tony Flaherty was interested to read
  33289. of the hardware problem experienced by Colin Wood (Archive 6.9 p61) when
  33290. fitting a ARM3 to his A410, since he has recently experienced a similar
  33291. problem with his A3000. He writes:
  33292. 6.10
  33293. “I have a basic ARM2 machine with RISC OS 3.1 and an Orion 2 Mb upgrade. 
  33294. I recently added an external 20 Mb ST506 hard disc using an ex-PC MFM
  33295. drive and an Acorn external controller. The drive and a suitable power
  33296. supply/fan sit in a home-made expansion box.  I suffer the usual A3000
  33297. problems with regard to the oxidation of the memory connectors.  The
  33298. hard disc also tends to generate defects if the system is powered down
  33299. in an abnormal way (i.e. not <ctrl-shift-f12>).
  33300. 6.10
  33301. “My problem was symptomatically the same as Colin’s in that, initially,
  33302. the system froze completely while I was editing a First Word Plus
  33303. document eventually forcing me to press <reset>. The screen flashed red
  33304. then blue with no further action − a power down produced the same
  33305. results, I tried this several times to no avail. Finally in desperation,
  33306. I opened the box but nothing looked out of place (no charring or loose
  33307. leads).  I powered up the machine and this time all was well, however,
  33308. when I verified the disc 20 or defects were reported, when these were
  33309. added to the disc’s defect list, using *DEFECT, some of the files within
  33310. the first Word Plus application directory where corrupt and this had to
  33311. be restored from a backup.”
  33312. 6.10
  33313. Tony wonders, therefore, whether Colin Wood’s assumption that his
  33314. problem related directly to the ARM3 upgrade was correct.  Could the
  33315. problem lie with RISC OS 3.1?  Does anyone have any views on this?
  33316. 6.10
  33317. Other matters arising
  33318. 6.10
  33319. •    Cache control − In response to the comments about difficulty on
  33320. RISC OS 3 with hares, tortoises and ARM3s, David Percival has sent in an
  33321. application that controls it properly. It evens notices if you have
  33322. typed in a cache-on or cache-off command or have executed one within a
  33323. program and it still displays the correct icon on the iconbar!  David
  33324. Percival, Swanley.
  33325. 6.10
  33326. •    Redraw problems (Archive 6.8 p29) − A problem of incorrect screen re-
  33327. drawing in !Edit was mentioned. Tim Nicholson has had the same problem
  33328. with Deskedit! He says it seems to be a particular problem with
  33329. unformatted text that only has carriage returns/line feeds as paragraph
  33330. breaks and nowhere else. Since both pieces of software have the same
  33331. problem, he wonders if the bug is in the SharedCLib? Has anyone else had
  33332. the same problem?
  33333. 6.10
  33334. •    Printing after Artworks (Archive 6.5 p31 and 6.8 p24) – Roger King
  33335. reported a problem with spurious fine horizontal lines about 4mm long
  33336. scattered throughout printouts when printing from another application
  33337. after printing from Artworks. Steve Hutchinson found that putting his
  33338. LaserDirect podule in a different slot (as recommended by Computer
  33339. Concepts) solved this problem for him. Unfortunately, this didn’t work
  33340. for Roger. However, he has now found a cure: after printing from
  33341. Artworks, select “Queue control” from the printer icon and then select
  33342. “Flush buffer”. He observes that it would seem that Artworks is leaving
  33343. something “nasty” in the printer buffer, although a CC representative
  33344. with whom Roger discussed the problem suggested that Acorn’s printer
  33345. drivers might be at fault.
  33346. 6.10
  33347. •    Photocopying via LaserDirect (Archive 6.8 p24) – Tim Powys-Lybbe has
  33348. got version 2.10 of the LaserDirect printer driver which works quite
  33349. satisfactorily and he has no more problems “photocopying” from Scanlight
  33350. Plus.
  33351. 6.10
  33352. He adds cryptically that “some things may not print totally as one would
  33353. expect in Paint or Scanlight Plus, particularly their positioning on the
  33354. page, but putting them into Draw or Impression totally solves the
  33355. problem.”  A
  33356. 6.10
  33357. Hints and Tips
  33358. 6.10
  33359. •    Altering Impression frames − Here is another one of those hints that
  33360. everyone but me probably knew about all the time: If you want to change
  33361. the attributes of several different frames, (like making them all
  33362. transparent) all you do is click on the first frame, call up Alter frame
  33363. (with <ctrl-f10>), make the changes and then click OK with <adjust>
  33364. instead of <select>. This keeps the Alter frame dialogue box on screen.
  33365. Then click <select> on the next frame to be changed and make the change
  33366. in the Alter frame dialogue box which is still there on screen. This
  33367. speeds things up no end.  Jochen Konietzko, Köln, Germany.
  33368. 6.10
  33369. •    Background printing − Various comments in Archive have suggested that
  33370. you need the Ace PROdriver in order to get background printing. However,
  33371. Keith Sloan’s PD program !Spooler (on Shareware 24) works with a
  33372. Panasonic 1124 + Impression II on RISC OS 3.11 − cheaper than using a
  33373. PROdriver!  Chris Dawson, Derby.
  33374. 6.10
  33375. •    Disc storage boxes − Looking for new disc storage boxes? Look no
  33376. further than your local Supermarket or D.I.Y. Superstore! I have
  33377. recently purchased the Module 2000 Box and Lid (Ref. no’s. Unit 2 and
  33378. Lid 2) manufactured by Addis, the plastic kitchen accessory
  33379. manufacturers. The size of the box is 450×190×127.5mm and comes in
  33380. various colours. The combined cost of the box and lid recently was £4.78
  33381. and it holds approximately 144 discs. (I have arranged them in four
  33382. rows, each holding 36 discs). What is more, it is made in Britain, like
  33383. the Acorn Archimedes, and better in style and strength. Give me Addis
  33384. any time!  Timothy Brown, Kent.
  33385. 6.10
  33386. •    Floptical drives − I offer the following as ‘Hints’ arising out of the
  33387. fairly extended process of getting my floptical drives to work (with
  33388. much help from Morley), in the hope that they will be useful to other
  33389. new owners.
  33390. 6.10
  33391. The drive will not work at all with older ROMs fitted to the SCSI
  33392. interface board − you need version 1.12 at least. If you already have a
  33393. SCSI hard disc (or other SCSI peripheral) there should be no termination
  33394. resistors in the floptical drive. They are easily removed but you have
  33395. to remove the drive from its case first − they are close to the ribbon-
  33396. cable connector on the underside of the drive.
  33397. 6.10
  33398. The drive is recognized as two devices. The 21Mb disc counts as a hard
  33399. disc and appears as SCSIDrive5 in my case (as I already had a SCSI
  33400. drive), while the facility for reading and writing to ADFS discs counts
  33401. as a floppy drive. I could not get the floppy device to be recognized at
  33402. all using the SCSI_conf program on Morley’s support disc, but had to do
  33403. it manually, using: *configure scsifslink 0 2 (followed by a reset).
  33404. This gives a ‘floppy’ icon called SCSIDrive0. (My drive arrived set up
  33405. as SCSI device 2 − you would need to modify the configure command if it
  33406. was set up to be another number.) There is no conflict between the SCSI
  33407. and ADFS floppy drives, although they are both called 0, and anyway the
  33408. computer will not allow you to call the SCSI floppy drive 1 if there is
  33409. no SCSI floppy drive 0.
  33410. 6.10
  33411. The writing under the SCSI drive icons changes from the drive name to
  33412. the disc name when a disc is mounted. This is potentially confusing
  33413. until you know about it, because the default name of the 21Mb disc is
  33414. the number of the drive. I got into even worse confusion because I had
  33415. tested the Floptical on its own, so the disc became labelled “disc4”.
  33416. When I restored the real SCSI hard disc as well as the Floptical, I got
  33417. an error message saying there was a conflict of disc names.
  33418. 6.10
  33419. By the way, since the floptical drive will not format discs, does anyone
  33420. know of a source of high-density floppies formatted ADFS 1.6Mb? Philip
  33421. Draper, Borehamwood.
  33422. 6.10
  33423. In view of this problem with flopticals being unable to format 1.6Mb
  33424. discs, we are offering pre-formatted discs at £17 for 10. Ed.
  33425. 6.10
  33426. •    Pocket Book battery connections − The middle battery connector on the
  33427. Pocket Book/Psion 3 does not allow the use of AA batteries with indented
  33428. positive and/or negative terminals (e.g. Ever Ready’s rechargeable
  33429. cells.)  Paul Bisonnette, Otterfing, Germany.
  33430. 6.10
  33431. •    SigmaSheet does not return to the desktop neatly. If programs such as
  33432. Ovation are running, their Alt-key combinations will be lost when
  33433. SigmaSheet returns. To solve this, amend the SIGSHEET program as
  33434. follows. Look at the end and find DEFPROCexit and change it to read:
  33435. 6.10
  33436. DEFPROCexit
  33437. 6.10
  33438. *FX 4
  33439. 6.10
  33440. ON:*FX 225,1
  33441. 6.10
  33442. *RMReInit InternationalKeyboard
  33443. 6.10
  33444. IF INKEY−2 : END : ELSE *Quit
  33445. 6.10
  33446. John Waddell, Renfrewshire.  A
  33447.  
  33448. Hints and Tips
  33449. 6.11
  33450. •    Amstrad CPC monitor link − Let me describe how to use the old monitor
  33451. left over from your Amstrad CPC for emergency use with your Archimedes.
  33452. 6.11
  33453. You need a six-pin, 270-degree DIN female plug, like the one in your
  33454. CPC, a normal D-sub nine-pin male, to plug into your RGB socket on the
  33455. computer and some soldering skill. (If you use an A5000 or later, you
  33456. need a 15-pin VGA-compatible plug, instead.)
  33457. 6.11
  33458. To make the setup even more user-friendly, you should invest in a two-
  33459. way, double switch, to cater for both mono and colour monitors.
  33460. 6.11
  33461. The DIN plug has six pins, with the centre pin being mono-in. When seen
  33462. from the rear with the soldering lugs towards you, (as in the diagram
  33463. opposite) the pin for the red is top left (1), then comes green (2),
  33464. blue (3), sync (4) and signal earth (5).
  33465. 6.11
  33466. On the 9-pin D-sub, pin number 1 is red, 2 is green and 3 is blue. Pin
  33467. number 4 is sync and 7 signal earth. The rest are unused. The
  33468. arrangement on the new machines is slightly different, as there are more
  33469. pins, but it is essentially the same!
  33470. 6.11
  33471. Basically you connect 1 to 1, 2 to 2 and 3 to 3, but the addition of a
  33472. switch makes it much more useful. Before starting, switch on the
  33473. computer while pressing <0>, to change to monitortype 0 for 50Hz
  33474. monitors and TVs.
  33475. 6.11
  33476. The switch on the cable is essential under two circumstances: You might
  33477. also want to use your TV as a colour monitor. Then you have to use the
  33478. Amstrad TV MP-2 modulator (still available). That does not use the
  33479. central monochrome pin, but the normal three RGB pins. You could make
  33480. two converters of course, but you might forget which is which. Instead,
  33481. you just flip the switch if the picture looks odd! Those with TVs that
  33482. accept RGB through the SCART connector should use those, of course!
  33483. A3010 owners should first try connecting to a TV, but the green CPC
  33484. monitor should be much sharper, if not having a higher resolution!
  33485. 6.11
  33486. Sometimes, when running some games like MiG-29M, you might want to
  33487. switch back and forth as the headup display is almost invisible against
  33488. the sky if you have all colours connected to the middle pin. By
  33489. momentarily switching to the colour setting, everything yellow will
  33490. become easily visible, as it becomes black (or more correctly, a black-
  33491. ish green, if you use the green monochrome monitor)!
  33492. 6.11
  33493. Turbo Challenge II becomes a real challenge in green. Chopper Force,
  33494. Bughunter II and Taipei work fine in green. Impression, Vector and
  33495. ArtWorks are essentially monochrome, if you don’t add colour yourself,
  33496. so they are not affected!  Tord Eriksson
  33497. 6.11
  33498. •    BASIC64 application − I have, for a long time, toyed with the idea of
  33499. testing BASIC64, by running the PCW Benchmarks with it. The normal way
  33500. would be to RMLoad the BASIC64 module and then type *BASIC64 − not very
  33501. user-friendly, as you have to type in the paths each time.
  33502. 6.11
  33503. Remembering David Pilling’s advice on the uses of the OSCLI command
  33504. (very odd to me, brought up on Spectrums and mainframes!) I wrote the
  33505. following Basic lines:
  33506. 6.11
  33507. *DIR SCSI::Conner170M
  33508. 6.11
  33509. *DIR OldRubbish.BASIC.BenchMARK
  33510. 6.11
  33511. *CAT
  33512. 6.11
  33513. INPUT “Which file? ”;a$
  33514. 6.11
  33515. OSCLI “*BASIC64 -quit ” + a$
  33516. 6.11
  33517. The *CAT shows me which files are available and OSCLI “*BASIC64 -quit”
  33518. loads BASIC64 runs the program a$ and then quits. Your version will have
  33519. to include your drives and directories, of course! This programming
  33520. fragment, I called !RunImage.
  33521. 6.11
  33522. Put this in the directory you have made called !Run64.
  33523. 6.11
  33524. To make this an application, steal some !Sprites from a program you
  33525. like, rename the individual icon sprites to !Run64 and sm!Run64.
  33526. 6.11
  33527. The next step is to make a copy of BASIC64 and drop that into the
  33528. directory. Now for the !Run file:
  33529. 6.11
  33530. Iconsprites <Obey$Dir>.!Sprites
  33531. 6.11
  33532. RUN <Obey$Dir>.BASIC64 -QUIT <Obey$Dir>.!RunImage
  33533. 6.11
  33534. Alternatively, you could run the copy of BASIC64 that you might have in
  33535. your system’s modules directory.
  33536. 6.11
  33537. It seems idiotic to run BASIC64, in order to run BASIC64, to run the
  33538. program you have selected, but it works perfectly.
  33539. 6.11
  33540. I tried using the more logical *RMLoad BASIC64, but then you fall into
  33541. the editor and we do not want that!
  33542. 6.11
  33543. Finally, you need a !Boot file:
  33544. 6.11
  33545. Iconsprites <obey$Dir>.!Sprites
  33546. 6.11
  33547. (A sample Basic64 application is on this month’s program disc.)  Tord
  33548. Eriksson
  33549. 6.11
  33550. •    ColourCard and VIDC software − After I had installed my ColourCard and
  33551. (thanks to a hint in Archive) realised that I still would have to use a
  33552. VIDC module (Careware 18) to make my monitor display modes 12 and 15, a
  33553. problem arose. I had configured my machine to one of those wonderfully
  33554. large screen modes (1152×848 logical pixels), and then when I found the
  33555. time to play a mode 15 game, (Tower of Babel, which is completely mouse-
  33556. controlled), there was no pointer!
  33557. 6.11
  33558. This is what Nigel Star of Wild Vision told me: In a ColourCard mode,
  33559. the VIDC pointer is disabled and some games don’t re-enable it so all
  33560. you have to do is switch to mode 15 first, and only then start the
  33561. game.  Jochen Konietzko, Köln.
  33562. 6.11
  33563. •    Combatting fiddlers − A solution for teachers who suffer from children
  33564. ‘fiddling’ with the palette, task windows, applications accessing the
  33565. hard disc and destroying files might be to use the RMKill command in the
  33566. !Boot file. Any or all of the following lines can be added to the !Boot
  33567. file.
  33568. 6.11
  33569. RMKill ResourseFiler
  33570. 6.11
  33571. RMKill ADFSFiler
  33572. 6.11
  33573. RMKill PaletteUtil
  33574. 6.11
  33575. RMKill Taskmanager
  33576. 6.11
  33577. This will leave the iconbar empty. Pressing <reset> will give error
  33578. messages. If you want a particular program to run, this could be done
  33579. from the !Boot file or from an application launcher such as !Menon or
  33580. !Two. Directories can be opened in the same way. Switching on whilst
  33581. holding down <shift> avoids running the !Boot file and returns icons to
  33582. the iconbar.  Paul Harrigan, Hong Kong.
  33583. 6.11
  33584. •    DragASprite module − After seeing the tip on the dragging of solid
  33585. sprites from a previous Archive, I decided to explore the DragASprite
  33586. module for myself. I have not worked on it exhaustively but I have come
  33587. across the following which users could put in their Basic programs.
  33588. 6.11
  33589. The DragASprite module supports two SWIs but the more useful of these
  33590. two is the SWI DragASprite_Start. It requires the following parameters:
  33591. 6.11
  33592. R0    control value
  33593. 6.11
  33594. R1    1 (this seems to be the only value that works)
  33595. 6.11
  33596. R2    pointer to sprite name
  33597. 6.11
  33598. R3    points to start coordinates of the drag box
  33599. 6.11
  33600. The control value consists of bits which affect the drag. The only ones
  33601. I have worked out are:
  33602. 6.11
  33603. bit 6    allow dragging outside graphics window
  33604. 6.11
  33605. bit 7    shadow the sprite
  33606. 6.11
  33607. Bits 0 and 4 seem to allow only the value 5, as far as I can work out.
  33608. 6.11
  33609. I have found that the two most useful values for the control value in R0
  33610. are:
  33611. 6.11
  33612. &85    non-shadowed drag outside the graphics window
  33613. 6.11
  33614. &C5    shadowed drag outside the graphics window
  33615. 6.11
  33616. R2 points to the first character of a string which is the name of the
  33617. sprite to be used for the drag, for example “file_fec”.
  33618. 6.11
  33619. R3 points to four 32-bit coordinates which describe the start and size
  33620. of the drag box (which is the same size as the sprite).
  33621. 6.11
  33622. This is about all I have been able to work out in the time I have spent
  33623. on it, but it is possible to modify Basic programs using the Save As
  33624. window to use DragASprite_Start instead of Wimp_ DragBox.
  33625. 6.11
  33626. For example, in FormEd 1.24, modify line 4810, which normally reads:
  33627. 6.11
  33628. 4810 SYS “Wimp_DragBox”,,q%
  33629. 6.11
  33630. to
  33631. 6.11
  33632. 4810 SYS “DragASprite_Start”,&C5 ,1,“File_fec”,q%+8
  33633. 6.11
  33634. I’m sure a similar fix could be used for other programs to give solid
  33635. sprite dragging.  Robin Terry, Newcastle upon Tyne.
  33636. 6.11
  33637. (Those who can afford £100 for a RISC OS 3 PRM will find more details on
  33638. page 3-299. Ed.)
  33639. 6.11
  33640. •    Free space on hard discs − In Hints and Tips, Archive 5.12, Steve
  33641. Drain asked if the same problem of allocating 28Kb to each new directory
  33642. applies to IDE drives. I checked this for my A5000 40Mb drive and found
  33643. that 7Kb is allocated per directory which seems a reasonable compromise.
  33644. This is lucky as there seems to be no way to alter the default format
  33645. using HForm.
  33646. 6.11
  33647. N.B. Count only reports the size of the data, not the actual space used
  33648. on the disc. This can only be found by using *FREE from the command line
  33649. before and after creating a directory/file and subtracting the values.
  33650. 6.11
  33651. The structure of !Fonts is where most directories occur. In my case,
  33652. there are 111 directories requiring 777Kb of space initially, but since
  33653. each contains over 7Kb of data for IntMetrics and Outlines, the space is
  33654. not wasted. However, if 28Kb were allocated, as with Steve’s make of
  33655. SCSI drive, then 111 × 28 = 3108Kb would be allocated. In my case, only
  33656. 2625Kb would be used as font data, losing 483Kb on fonts alone! When
  33657. Computer Concepts released Compression, I thought that this would solve
  33658. space problems, but I was told by CC that it retains the directory
  33659. structure (I assume with the same overheads per directory) and is not
  33660. very effective at reducing the disc space taken up by !Fonts.
  33661. 6.11
  33662. I have now installed SparkFS from David Pilling. Although each compacted
  33663. Spark file can contain lots of directories when opened, to the IDE
  33664. filing system it is only one file and only allocates one lot of 7Kb (or
  33665. 28Kb for Steve). So it is not sensible to have a Spark file containing
  33666. less than 7Kb. (The Count facility is misleading as it only gives the
  33667. size of compressed data not the space allocated by the IDE drive.) There
  33668. is a speed penalty for using a Spark file but there is also a Spark
  33669. directory option which is a lot faster according to the booklet although
  33670. it seems to have a much larger disc space requirement of about 14Kb
  33671. which does not all seem to be recovered.
  33672. 6.11
  33673. So the conclusions seem to be:
  33674. 6.11
  33675. 1)    If possible, reformat with the smallest file allocation.
  33676. 6.11
  33677. 2)    Only create a new directory if you are going to store an amount of
  33678. data comparable with the directory space (7Kb for my IDE drive, 28Kb for
  33679. Steve’s original SCSI).
  33680. 6.11
  33681. 3)    Be aware of the overheads due to any compression system you use,
  33682. checking by using *FREE at the command line (particularly if it retains
  33683. directories.)
  33684. 6.11
  33685. 4)    If using SparkFS on an A5000, ensure any Spark file will contain
  33686. at least 7Kb of data.
  33687. 6.11
  33688. 5)    If space is tight, remember that a Spark directory will have space
  33689. overheads although it is faster.
  33690. 6.11
  33691. It would be interesting to hear the findings from other people using
  33692. other compression systems, types of drive and any information on
  33693. reformatting A5000 IDE drives with different file allocation sizes. 
  33694. Alan Dawes, Ilford
  33695. 6.11
  33696. •    Help_ with menus in C − In Archive 6.10 p8, Richard Simpson asks about
  33697. using help_ with menus. I enclose a program (on the monthly program
  33698. disc) to demonstrate a solution.
  33699. 6.11
  33700. The program offers help via !Help in the following situations:
  33701. 6.11
  33702.   •    The main iconbar icon.
  33703. 6.11
  33704.   •    Menu (with sub-menu) from from the iconbar.
  33705. 6.11
  33706.   •    Dialogue box from iconbar, including special processing for
  33707. version details.
  33708. 6.11
  33709.   •    A simple window.
  33710. 6.11
  33711.   •    Menu from the simple window.
  33712. 6.11
  33713. The program doesn’t actually do anything and is quite long, so I won’t
  33714. attempt to explain its operation here. There are a number of comments in
  33715. the code which should, hopefully, be sufficient for a C programmer using
  33716. help_.
  33717. 6.11
  33718. The short-hand strings supported by !Help are (this is from !Help’s
  33719. message file), note the spaces:-
  33720. 6.11
  33721. \S  ’Click SELECT to ’
  33722. 6.11
  33723. \A  ’Click ADJUST to ’
  33724. 6.11
  33725. \G  ’This option is greyed out because ’
  33726. 6.11
  33727. \D  ’Drag SELECT to ’
  33728. 6.11
  33729. \w  ’window’
  33730. 6.11
  33731. \a  ’ADJUST’
  33732. 6.11
  33733. \R  ’Move the pointer right to ’
  33734. 6.11
  33735. \T  ’This is the ’
  33736. 6.11
  33737. \W  ’This window is ’
  33738. 6.11
  33739. \d  ’Drag ADJUST to ’
  33740. 6.11
  33741. \s  ’SELECT’
  33742. 6.11
  33743. Please bear in mind that the documentation in Release 4 is sketchy and
  33744. this may not be Acorn’s preferred solution, but it works. Hope this is
  33745. of some use.  Joe Wood, Goring-by-Sea.
  33746. 6.11
  33747. •    Impression master pages − To create a document with the same master
  33748. page as an earlier document in Impression, load the first document, save
  33749. a new copy with a new name, create a new chapter with the following
  33750. choices: Insert after current chapter / Restart page at 1 / Copy master
  33751. page and delete all of the chapters except the new one.  George Foot,
  33752. Oxted.
  33753. 6.11
  33754. •    Numeric resets − I have a 420/1 and, because of lack of space on the
  33755. table where the computer lives, the keyboard has to be kept upright
  33756. behind the computer when it is not in use. One day, I turned the
  33757. computer on and was greeted by a display moving rapidly upwards and
  33758. slowly sideways. Adjusting the monitor had no effect. It turned out that
  33759. one of the numeric keys was being held down by the corner of the monitor
  33760. and the monitor type had been reconfigured as I switched on. So, if you
  33761. keep your keyboard upright (yes, I know it’s bad practice, but where
  33762. else can I keep it?) and your display goes crazy, try a <numeric> reset
  33763. before panicking!  P Young, Cheltenham
  33764. 6.11
  33765. •    Pocket Book and BJ10ex problems − It appears that the Pocket Book’s
  33766. built in Canon BJ10e driver does not work correctly with the Canon
  33767. BJ10ex. We have a printer driver (supplied to us from Psion via Richard
  33768. Collinson) which works. If you have this printer, send us a formatted
  33769. SSD or a disc and your problems will be over. Psion can also supply
  33770. other drivers on SSD if necessary.  Simon Moy, Archive.
  33771. 6.11
  33772. • SigmaSheet revisited − John Waddell’s SigmaSheet fix in last month’s
  33773. Hints & Tips requires one more line within DEFPROCexit: *Country UK.
  33774. 6.11
  33775. •    Solid icons − If the ‘drag solid file icons’ option is set in RISC OS
  33776. 3, it causes applications like DrawPlus to reject the file as being of
  33777. an incompatible file format. This prevents files being dragged between
  33778. applications in the normal way.  Mike McNamara, Dunstable.  A
  33779. 6.11
  33780. Using RISC OS 3.10
  33781. 6.11
  33782. Hugh Eagle
  33783. 6.11
  33784. Neil Dickson asks a jolly good question: have I or Archive ever had any
  33785. response from Acorn indicating that they are paying attention to this
  33786. column? Well, I haven’t (yet) and I think Paul would have told me if he
  33787. had. Surely, it’s inconceivable that Acorn are not interested in the
  33788. experiences that have been recounted, the suggestions offered and the
  33789. views expressed here. Isn’t it? Perhaps we’ll have some comment for next
  33790. month. Let’s wait and see ...
  33791. 6.11
  33792. RISC OS 4 Wish List (continued)
  33793. 6.11
  33794. •    Alarm – (a) An option to display the digital clock not on the iconbar
  33795. but at the top right corner of the screen in front of all other windows.
  33796. (b) An option to set an alarm that goes off after every n (settable)
  33797. minutes − to remind you just how much time you are spending on the
  33798. machine!!?? (Rex Palmer)
  33799. 6.11
  33800. •    Shutdown – The <shift-ctrl-F12> routine should dismount any floppy
  33801. discs that may be present, then remind the user that they are still
  33802. there. (Peter Young)
  33803. 6.11
  33804. All the following are from Neil Dickson:
  33805. 6.11
  33806. •    Paint – (a) Allow local fills with the “mask” colour. (b) Use outline
  33807. fonts.
  33808. 6.11
  33809. •    Edit – (a) Use multiple fonts (and maybe accept graphic files: i.e.
  33810. have a simple wordprocessing option). (b) Update the font list each time
  33811. a new font directory is loaded (like Draw and Impression do.)
  33812. 6.11
  33813. •    Printers – (a) Put as much as possible of the code into ROM, to save
  33814. loading time. (b) A quicker method of “toggling” within !Printers when
  33815. deciding which are active and which are inactive.
  33816. 6.11
  33817. •    Calc – Make it better, but less complicated than SciCalc. (E.g.
  33818. include memory buttons and a percentage button, and allow
  33819. multiplication, division, etc, by a constant.)
  33820. 6.11
  33821. •    Draw – (a) Optional detachable toolbox. (b) An option for redefining
  33822. the toolbox (e.g. to include zoom and edit tools.) (c) Patterned fills
  33823. (hatching, stripes, etc.)
  33824. 6.11
  33825. •    Tidy windows – Include a “Tidy windows” option on the desktop.
  33826. 6.11
  33827. •    Filer multitasking – An option to make all filer actions (load and
  33828. save, disc mounting, etc) multitask.
  33829. 6.11
  33830. •    Replacement of system font – Optional replacement of the system font
  33831. by an outline font on the desktop (like the Germans seem to have already
  33832. in RISC OS 3.12)!
  33833. 6.11
  33834. •    RMFaster – An option to RMFaster various modules, such as
  33835. SharedCLibrary, from the Task Manager (rather than having to type in the
  33836. command at the command line).
  33837. 6.11
  33838. •    Virtual memory – For hard disc users.
  33839. 6.11
  33840. •    Built in sounds – A greater variety.
  33841. 6.11
  33842. •    Simpler mode changing – A less fiddly method.
  33843. 6.11
  33844. •    Keyboard emulation of the mouse – e.g. using <Alt> and the arrow keys.
  33845. 6.11
  33846. •    Auto-scrolling of font menus – Make the list of fonts scroll
  33847. automatically when the pointer reaches the bottom.
  33848. 6.11
  33849. •    Compression of sprite files – Either in addition to, or instead of,
  33850. compression of entire discs, arrange for sprite files to be compressed
  33851. always.
  33852. 6.11
  33853. •    Font management – Put a Font Manager on the icon bar showing a list of
  33854. available directories which you can select and deselect by clicking.
  33855. (Sounds like !FMaster from Risc User.)
  33856. 6.11
  33857. Miscellaneous
  33858. 6.11
  33859. Superfluous icons in template definitions
  33860. 6.11
  33861. Mick Day has found numerous examples of template definitions in standard
  33862. RISC OS 3 applications which contain extra unused icons. The “save”
  33863. window in Alarm is just one example: this has four superfluous icons.
  33864. (To see for yourself: find the template file inside Resources:$.
  33865. Resources, load it into FormEd, use the menu to assign vertical and
  33866. horizontal scroll bars and a size icon, then scroll around the window.)
  33867. He has also noted inconsistent naming of templates and numbering of
  33868. icons. If you use existing windows borrowed from existing applications,
  33869. beware that the templates may require more memory than you might expect
  33870. because of the space taken by the extra icon definitions and pay close
  33871. attention to the icon numbering. As Tim Nicholson comments: it is a
  33872. great pity that Acorn did not supply a suitable “clean” set of templates
  33873. to work from.
  33874. 6.11
  33875. “OS_Find” and image filing systems
  33876. 6.11
  33877. In one of my programs, I need to be able to check that a specified
  33878. filing system object (which might be either a file or directory) is
  33879. actually present and, in particular, is not on a floppy disc that has
  33880. been removed. In RISC OS 2, I found that the following code seemed
  33881. fairly foolproof:
  33882. 6.11
  33883. ON ERROR LOCAL:PROCReport(“Can’t find ”+Object$):ENDPROC
  33884. 6.11
  33885. SYS “OS_Find”,&40,Object$ TO FileHandle%
  33886. 6.11
  33887. IF FileHandle%<>0 THEN SYS “XOS_Find”,0,FileHandle%
  33888. 6.11
  33889. RESTORE ERROR
  33890. 6.11
  33891. This relied on the fact that the SWI call “OS_Find”,&40 (which is the
  33892. general routine for opening a file) should “open” Object$ whether it is
  33893. a directory or a file. However, with the arrival of “image” filing
  33894. systems such as DOSFS and SparkFS, I found that this wouldn’t work,
  33895. because an attempt to “open” a directory inside an image filing system
  33896. (e.g. a directory inside a SparkFS archive) resulted in an error
  33897. (contrary to the rules set out in the Programmer’s Reference Manual).
  33898. 6.11
  33899. David Pilling says “there are two entry points to SparkFS, one via the
  33900. OS image filing system, the other via a traditional FS entry. The code
  33901. in these after the entry point is the same. So it looks like it is the
  33902. OS that is faulting your operation and not SparkFS.”
  33903. 6.11
  33904. I have now rewritten my code so that it checks to see whether Object$ is
  33905. a directory and, if it is, it looks inside it for a file and tries to
  33906. open that. This seems to work with image filing systems as well as
  33907. others, but is a bit cumbersome to say the least (and as David Pilling
  33908. observes is still open to being fooled by cacheing). Does anyone know of
  33909. a simple and genuinely foolproof way of ensuring that a filing system
  33910. object is present?
  33911. 6.11
  33912. Applications that refuse to Shutdown
  33913. 6.11
  33914. Keith Gardner has experienced problems with applications that interfere
  33915. with the Shutdown process and cause the computer to hang. He refers to
  33916. advice in the June issue of Risc User, according to which the Shutdown
  33917. routine in RISC OS 3 (which can be selected from the Acorn icon or by
  33918. pressing <ctrl-shift-F12>) cannot cope if more than one Run file is open
  33919. at the time of Shutdown. Run files are left open while applications are
  33920. running if there are any lines after the line that calls RunImage. One
  33921. way to avoid the problem is to remove surplus blank lines or lines
  33922. containing remarks (prefaced with a | ). However, applications sometimes
  33923. contain tidying up commands such as RMKill commands to get rid of
  33924. modules: in these cases, it may be necessary to Quit one or more
  33925. applications before selecting Shutdown.
  33926. 6.11
  33927. Matters arising
  33928. 6.11
  33929. Testing a printer’s on-line status
  33930. 6.11
  33931. (Archive 6.9 p12) Mick Day found that the printer test routine published
  33932. in the June edition of Archive lied! It told him that the printer was
  33933. not on line whether it was or not, and the printer beeped if it was on
  33934. line. Tim Nicholson says that the routine (as previously published) can
  33935. fail for two reasons: Firstly, it assumes a printer buffer of 1024
  33936. bytes, but the actual size depends upon the setting of *Configure
  33937. PrinterBufferSize, which may be different from the default of 1Kb.
  33938. Secondly, the first line of the program redirects the whole output
  33939. stream to the printer, thus if the program is run from the desktop, the
  33940. output which normally goes to the Task window that the desktop
  33941. generates, goes to the printer instead as well as the test byte of
  33942. CHR$(0). Typically this stream will contain several control codes to
  33943. open the task window display and the Task window title, e.g. RUN
  33944. ADFS::DiscName.$.PrintTest. Although this stream is sent before running
  33945. the program, the FX 3 call at the top of the program is executed in time
  33946. to redirect this part way through and upset the printer.
  33947. 6.11
  33948. Tim suggests the following variant of the routine:
  33949. 6.11
  33950. *FX21,3
  33951. 6.11
  33952. empty%=ADVAL(-4)
  33953. 6.11
  33954. PRINT “Printer is ”;
  33955. 6.11
  33956. *FX3,10
  33957. 6.11
  33958. PRINTCHR$(0);
  33959. 6.11
  33960. a%=INKEY(20)
  33961. 6.11
  33962. a%=ADVAL(-4)
  33963. 6.11
  33964. *FX3,0
  33965. 6.11
  33966. *FX21,3
  33967. 6.11
  33968. IF a%<>empty% THEN
  33969. 6.11
  33970. PRINT “not on line”
  33971. 6.11
  33972. ELSE PRINT “on line”
  33973. 6.11
  33974. ENDIF
  33975. 6.11
  33976. END
  33977. 6.11
  33978. This deals with the first problem by comparing the buffer length
  33979. immediately after flushing with the length after inserting the test byte
  33980. and pausing to allow throughput, and with the second by including a
  33981. PRINT statement before redirecting the output stream.
  33982. 6.11
  33983. Tim notes that the original program would run correctly (subject to the
  33984. buffer size being correct) from the command line, i.e. after pressing
  33985. <f12>, and CHAINing or LOADing and RUNning.
  33986. 6.11
  33987. Tim does not understand the supposed warning from Acorn about the use of
  33988. ADVAL(−4) (see Archive 6.7 p41) since it is a use specified in the Basic
  33989. manual. He can only assume it is a confusion with the use of positive
  33990. ADVAL parameters, which are only meaningful if a podule with an analogue
  33991. input which mimics that of the original BBC Micro is fitted. He has
  33992. experienced no difficulties using negative ADVAL parameters to inspect
  33993. the condition of buffers and is not aware of any differing action under
  33994. RISC OS 3.1x as opposed to 2.0 with this facility.
  33995. 6.11
  33996. Basic program compaction
  33997. 6.11
  33998. (Archive 6.9 p65) Rex Palmer says that in his experience compacted
  33999. programs only cause problems when you try to alter them. The problem
  34000. seems to occur with both Edit and BasicEdit. If a compacted program is
  34001. loaded into either of these and any alterations made, then when the
  34002. program is re-saved, the line that has been altered will generate the
  34003. error even if the resulting error is not part of the line that was
  34004. altered!
  34005. 6.11
  34006. Altering the keyboard status
  34007. 6.11
  34008. (Archive 6.8 p27 and 6.9 p65) Rex Palmer has written to explain the
  34009. purpose of bit 7 (the “Shift enable” bit) of the keyboard status byte.
  34010. When this bit is set, the <Shift> key reverses the action of the
  34011. <CapsLock> key. Thus, if you hold down <Shift> while pressing <CapsLock>
  34012. then release both keys, you put the computer in a state where pressing
  34013. the <Shift> key with a letter key gives you lower case letters. The
  34014. computer can be configured to start up in this state. Alternatively, the
  34015. command *FX202,128,111 will achieve the same effect ... since 111 = 255
  34016. − 128 − 16 the command sets bit 7 (Shift Enable on) and unsets bit 4
  34017. (Caps Lock on).
  34018. 6.11
  34019. To recap, the most useful commands are likely to be:
  34020. 6.11
  34021. *FX202,0,239 to set Caps Lock on
  34022. 6.11
  34023. *FX202,16,239 to set Caps Lock off
  34024. 6.11
  34025. *FX202,128,111 to select ShiftCaps
  34026. 6.11
  34027. Programmer’s Reference Manual
  34028. 6.11
  34029. The increase in the number of pages is not “nearly 50%”, as I said last
  34030. month, but is in fact over 70% (excluding the indexes, there were 1,882
  34031. pages in the RISC OS 2 manual and there are over 3,200 in the new
  34032. edition.) Sorry about the mistake!
  34033. 6.11
  34034. Arm3 hare and tortoise (again)
  34035. 6.11
  34036. (Archive 6.6 p59, 6.8 p30 and 6.10 p63) With the help of Jim Nottingham,
  34037. I have found out the source of my problem. The Run file of the Aleph One
  34038. !Arm3 application should read:
  34039. 6.11
  34040. IconSprites <Obey$Dir>.!Sprites
  34041. 6.11
  34042. |Use only one of the lines
  34043. 6.11
  34044. |below, comment out the other.
  34045. 6.11
  34046. |Load <Obey$Dir>.CMdlUnix
  34047. 6.11
  34048. Load <Obey$Dir>.CacheMdl
  34049. 6.11
  34050. Load <Obey$Dir>.IconMdl
  34051. 6.11
  34052. <Obey$Dir>.Kick CacheIcon
  34053. 6.11
  34054. In my file, the CacheMdl line had somehow got REM’d out. I vaguely
  34055. remember that when I first tried to install !Arm3 with RISC OS 3, I read
  34056. the instruction about “using only one of the lines below” as meaning
  34057. that only one of the following three lines should be used and, since I
  34058. assumed that I no longer needed “CacheMdl” because RISC OS 3 now had a
  34059. module to deal with this, I removed it as well as the CMdlUnix line. On
  34060. looking at the file again, I now presume that you are only supposed to
  34061. remove one of these two lines, so I have reinstated the CacheMdl line
  34062. and everything seems fine. A case of trying to be too clever, it seems.
  34063. 6.11
  34064. Redraw problems (and an alternative)
  34065. 6.11
  34066. (Archive 6.8 p29 and 6.10 p63) Richard Hallas confirms that the problem
  34067. of incorrect screen redrawing in Edit and DeskEdit is indeed due to a
  34068. bug in the Shared C Library and that the problem seems to occur with
  34069. particularly long lines. He says that any program which uses the C
  34070. library’s text object feature will suffer from the bug until Acorn
  34071. corrects it in a future version of CLib. He adds that Acorn has been
  34072. aware of the problem for some time, so hopefully a fix should not be too
  34073. far off.
  34074. 6.11
  34075. Richard used to use DeskEdit to produce files for input to PMS which
  34076. frequently involved very long input lines indeed (up to several hundred
  34077. characters). He would occasionally reposition the caret and start
  34078. typing, only to find that his input had gone into a separate part of the
  34079. file which was not on the screen! Partly because of this bug, he has now
  34080. moved over to using the public domain text editor, Zap, which he
  34081. thoroughly recommends: “It has its own redraw routines, which are
  34082. unbelievably fast and totally accurate: plus you can get twice as much
  34083. text on the screen in multisync modes.”  A
  34084. 6.11
  34085.  
  34086. Hints and Tips
  34087. 6.12
  34088. •    Cfs and the cluttered iconbar − There are five drive icons on my
  34089. iconbar, together with five Cfs (i.e. Computer Concepts’ Compression)
  34090. icons, so there is hardly room for anything else!
  34091. 6.12
  34092. Since version 1.17 of Cfs, however, things have rather changed for the
  34093. better, due to the key combination <ctrl-insert> which lets you switch
  34094. between the Cfs and the normal window.
  34095. 6.12
  34096. I now find that one Cfs icon on the iconbar is all I need. What I have
  34097. done is this: My !Boot file contains nine lines concerning Cfs:
  34098. 6.12
  34099. <d>.!Cfs
  34100. 6.12
  34101. (This runs the application. <d> gives the path for the program, as
  34102. described in Archive 3.9, p.8)
  34103. 6.12
  34104. RMEnsure CFSModule 1.17 RMLoad <d> .!Cfs.CFSModule
  34105. 6.12
  34106. RMEnsure CFSModule 1.17 Error CFSModule not loaded
  34107. 6.12
  34108. (These two lines are just to make doubly sure.)
  34109. 6.12
  34110. CFStemp <s>!Scrap.ScrapDir
  34111. 6.12
  34112. NewCFS ADFS::0
  34113. 6.12
  34114. NewCFS ADFS::intern
  34115. 6.12
  34116. NewCFS SCSI::SCSIDrive0
  34117. 6.12
  34118. NewCFS SCSI::SCSIDrive4
  34119. 6.12
  34120. NewCFS SCSI::extern
  34121. 6.12
  34122. (The last six lines duplicate the way in which everything was first set
  34123. up from the Cfs iconbar icons.)
  34124. 6.12
  34125. With these commands in the !Boot file, it is now possible to delete all
  34126. but one Cfs icon from the iconbar and save the changes. Now one of my
  34127. drives (the one I use most often) can have its Cfs directory windows
  34128. opened directly. On all the others, I open the relevant uncompressed
  34129. window, then press <ctrl-insert>.  Jochen Konietzko, Köln, Germany
  34130. 6.12
  34131. •    Impression arrows − Left and right arrows in Impression are extremely
  34132. easy to generate. You start with “<−−” or “−−>” and use <ctrl-R>
  34133. inbetween the characters to reduce the spacing (kerning) between the
  34134. characters so that you end up with “<−−” or “−−>”. Those two needed one
  34135. <ctrl-R> between the dashes and nine <ctrl-R>s between the angle bracket
  34136. (inequality sign) and the dash but it will depend on the font size.
  34137. (These “dashes” are produced in Impression with <shift-ctrl-hyphen>.
  34138. Actually, they are supposed to be minus signs, I think but I prefer them
  34139. to the “proper” dash which is <alt-152>. Certainly when I tried the
  34140. “proper” dash for this purpose, it produced “—>” which isn’t quite as
  34141. good as the height is different and it doesn’t hit quite at the centre
  34142. of the angle of the hairpin.) You can see it better at a bigger point
  34143. size:
  34144. 6.12
  34145. Two minus signs: “−−>” One dash: “—>>”
  34146. 6.12
  34147. In Times font, which I am using here, the long dash is slightly lighter
  34148. and doesn’t match the weight of the angle bracket. However, this trick
  34149. does depend on the particular font used − it’s a ‘suck it and see” job. 
  34150. Ed.
  34151. 6.12
  34152. •    Multistore alphabetical sorting − I recently created a large database
  34153. for my church roll in which there was a single name field presenting the
  34154. information in the form “Sue Adams”. I set up an index on this field
  34155. using the Surname function only to discover that it persisted in sorting
  34156. “Sue Adams” after “Margaret Adamson”. An examination of BaseLib (found
  34157. by shift-clicking !Multistore and dragging into !Edit) revealed how the
  34158. Base Function FNsurn worked and led to the idea of creating another Base
  34159. Function, FNchristian, to select the Christian name and any initial.
  34160. Using !Edit, I adapted FNsurn and then saved it as a further Base
  34161. Function in BaseLib. Then, using the Sort facility with the expression
  34162. “FNsurn(@ Name)+FNchristian(@Name)”, the names were sorted into correct
  34163. alphabetical order. It is necessary to quit and re-load Multistore to
  34164. ensure that it knows of the new Base Function. FNchristian is as
  34165. follows:
  34166. 6.12
  34167. DEFFNchristian(A$):LOCALI%,C%
  34168. 6.12
  34169. WHILERIGHT$(A$,1)=“ ”:A$=LEFT$(A$) :ENDWHILE:I%=LENA$: C%=ASCMID$(A$,I%)
  34170. 6.12
  34171. WHILEI%>0AND((C%>64ANDC%<91)OR(C%> 96ANDC%<123)ORC%=45):I%-=1
  34172. 6.12
  34173. C%=ASCMID$(A$,I%):ENDWHILE
  34174. 6.12
  34175. IF INSTR(A$,“ ”)>0THEN=LEFT$(A$, I%-1)ELSE=“”
  34176. 6.12
  34177. Colin Brockie, Kilmarnock.
  34178. 6.12
  34179. •    Multiple stories on one page in Impression − It can sometimes be
  34180. extremely desirable to have two or more independent stories on a single
  34181. page in Impression. Normally, when you enter text in a single-frame page
  34182. and the text fills the frame, a new page is created and the text
  34183. continues to flow onto the new page. Creating a second frame on any
  34184. given page simply makes a local frame which does not exhibit this
  34185. ability to flow text onto a new page when it is full. However, if it
  34186. were possible to have two or more frames on a page which could
  34187. independently create new pages when full, this would be very useful − it
  34188. would make for easy creation of footnotes, for one thing.
  34189. 6.12
  34190. I was recently asked how to achieve this effect by a user who was
  34191. setting opera libretti, and who wanted to have two columns side by side
  34192. for different languages. A two-column master page layout did not achieve
  34193. the desired effect because the text flowed from one column to the next
  34194. on the same page, rather than from any given column to the equivalent
  34195. column on the following page.
  34196. 6.12
  34197. There is, in fact, a way of achieving the required effect in Impression,
  34198. but the technique is a little subtle.
  34199. 6.12
  34200. How to do it − Either choose a suitable master page which exists already
  34201. or use the ‘New master page’ menu option to create an appropriate page
  34202. with the desired number of columns on it. Create whatever extra frames
  34203. you need on your master page in the normal way.
  34204. 6.12
  34205. Now use the ‘Show flow’ option from Impression’s iconbar menu to see how
  34206. the text will flow between the frames. Under normal circumstances, to
  34207. link frames into the text flow sequence you click <select> on the first
  34208. frame in the sequence, followed by <adjust> on the succeeding frames in
  34209. the correct order. However, it is not possible to remove frames from the
  34210. sequence using this method and so, if you try to alter the order of flow
  34211. which is automatically assigned on the master page, you will find you
  34212. are not able to do so. Therefore, the only way to remove a frame from
  34213. the text flow sequence is to actually delete it and then recreate it.
  34214. 6.12
  34215. So, for each frame which is to contain its own page-creating story,
  34216. first select the frame and then open the ‘Alter frame’ dialogue box with
  34217. <ctrl-f10>. Make a note (mental or otherwise) of the X and Y coordinates
  34218. of the frame, close the dialogue box and press <ctrl-X> to cut the frame
  34219. to the clipboard. Immediately you have done this, press <insert> (or
  34220. <ctrl-V>) and paste the frame back to where you cut it from. Finally,
  34221. open the ‘Alter frame’ box again and restore the coordinates to what
  34222. they were before.
  34223. 6.12
  34224. On the face of it, this seems pretty pointless. All you have done is
  34225. delete a frame and then put it back again in the same place. However,
  34226. the practical effect of the action is to un-link the frame from the text
  34227. flow sequence. If you choose ‘Show flow’ from the iconbar menu again,
  34228. you will see that the frame no longer has an arrow pointing to or from
  34229. it. (In fact, if you have a layout of three or more columns, you will
  34230. see that the flow has bypassed this frame, but still connects the
  34231. others.)
  34232. 6.12
  34233. What this boils down to is that you can have as many individual stories
  34234. as you want on a single master page. Each story can consist either of a
  34235. separate frame or any number of linked frames. Any such set of frames on
  34236. an Impression master page will cause the creation of a new page when
  34237. filled with text in the document.
  34238. 6.12
  34239. The layout shown in the illustration is not intended to be a serious
  34240. example but it merely illustrates the idea. The frames for both Story 1
  34241. and Story 2 have been linked, whilst the frame for Story 3 is a separate
  34242. entity, as is the frame for footnotes.
  34243. 6.12
  34244. As for practical examples of this idea, one has only to look at the old-
  34245. style (RISC OS 2) Acorn manuals, such as the BBC Basic Guide or PRM.
  34246. These manuals all have a vertical line about a third of the way across
  34247. each page, to the right of which is the main text. The headings and sub-
  34248. headings all appear to the left of the line. Although the creation of
  34249. such pages by conventional methods would be perfectly possible, having
  34250. two independent stories (one for the main text, another for the
  34251. headings) would greatly simplify the process.
  34252. 6.12
  34253. A similar idea commonly found in educational material is to have a
  34254. column, at the right hand side of the page, which contains comments
  34255. relating to the ideas presented in the main body of the text.
  34256. 6.12
  34257. Another good use for this idea is the presentation of tabulated material
  34258. such as a printed index. If you want a column of numbers to be in a
  34259. different style to the reference text the numbers accompany, it is far
  34260. easier to have two independent stories than to apply a specific style
  34261. for each number on a line.
  34262. 6.12
  34263. When using this approach, there is just one thing to watch out for. If
  34264. there is not a direct one-to-one correspondence between the number of
  34265. lines in the stories (which there may or may not be, depending on the
  34266. document), you must remember to press <ctrl-G> (which corresponds to the
  34267. ‘Frame=>Force to next’ menu option) when you have typed in all the text
  34268. for the shorter story on each page. If you don’t do this, you may find
  34269. that, when you position the caret in the frame in which you want to
  34270. start typing, the text appears on the previous page. However, you will
  34271. soon get used to this.
  34272. 6.12
  34273. As for footnotes, if you know that none of your footnotes will exceed a
  34274. single line in depth, you should create your footnote master page frame
  34275. to be just large enough to contain one line of text. Then, each time you
  34276. press <return>, the caret will advance one page. If you need longer
  34277. footnotes, however, make the master page frame large enough to hold the
  34278. largest note and remember to use the <ctrl-G> method.  Richard Hallas,
  34279. Huddersfield.
  34280. 6.12
  34281. Is it possible to have two or more independent stories running side-by-
  34282. side in Ovation? If so, can anyone explain how? Ed.
  34283. 6.12
  34284. •    Printing to files − I experienced the same problem as Tom Rank
  34285. (Archive 6.9 p63) with printing to a file. This involved an address
  34286. exception being caused at the end of each print run which prevented the
  34287. last few graphics lines from being printed. The problem is caused by
  34288. ADFSBuffers. Setting this to zero using:
  34289. 6.12
  34290.     *Configure ADFSBuffers 0
  34291. 6.12
  34292. solves the problem.  Paul Mellor, Derby.
  34293. 6.12
  34294. •    Vector overlays − The new version 1.10 of Vector offers the option to
  34295. draw lines with overlays (i.e. between 1% and 99% of the line’s interior
  34296. is drawn in a different colour), a feature which makes drawing little
  34297. map sketches very simple.
  34298. 6.12
  34299. A problem arises if you want to join two roads or two rivers without a
  34300. seam.Vector produces something like this (overlay 50%):
  34301. 6.12
  34302. For a decent map you need, instead, something like this:
  34303. 6.12
  34304. If, as in this case, all paths have the same width, it is simple: Just
  34305. select them all and merge them through the “Special” menu. (This also
  34306. saves memory: The five paths in the first picture take up 1071 bytes,
  34307. the merged path only 883 bytes.)
  34308. 6.12
  34309. If the width differs, the thickest line will force its width upon all
  34310. the others, making a merge inadvisable; then you will have to apply
  34311. little “beauty patches” in the form of completely white rectangles to
  34312. cover the unwanted black lines.
  34313. 6.12
  34314. While you rotate the rectangles to align them with the road, it is best
  34315. to switch the amount of detail shown on the screen from stage 5 to stage
  34316. 3, so that all the rectangles appear just as thin black outlines (even
  34317. if they are not selected) and this makes an “invisible” shape rather
  34318. more easy to handle.
  34319. 6.12
  34320. When you go about rotating those rectangles, it makes sense to lock
  34321. everything else first with <ctrl­H> because else it is very simple to
  34322. rotate something else besides the little patch.  Jochen Konietzko, Köln,
  34323. Germany.  A
  34324. Using RISC OS 3.1
  34325. 6.12
  34326. Hugh Eagle
  34327. 6.12
  34328. SCSI problems
  34329. 6.12
  34330. Barry Thompson found one day that he was unable to access the hard
  34331. drive, an Oak Worra Winnie 45Mb on an A340 with RISC OS 3.11. The error
  34332. message, ‘Disc not understood – has it been formatted?’ came into view.
  34333. On Oak’s advice, he refitted RISC OS 2 and the message became ‘Bad free
  34334. space map.’ Adrian Look’s !FixMap was unable to help, so the disc had to
  34335. be reformatted and, of course, all the data was lost. Someone at Oak
  34336. suggested to Barry that SCSI can be less reliable with RISC OS 3 than
  34337. with RISC OS 2 and recommended doing a *Checkmap every couple of days
  34338. and, if errors were reported, to back everything up and reinitialise the
  34339. disc.
  34340. 6.12
  34341. Synonymous pathnames
  34342. 6.12
  34343. Mick Day writes, “I wrote some time ago that the operating system did
  34344. not check for synonymous valid references to the RAMDisc pathnames. This
  34345. is, in fact, more general. If full and accurate pathnames are always
  34346. used, this is no problem; and where removable media are concerned, it is
  34347. probably necessary. However, comparison of the ‘Bytes free’ or a CRC
  34348. number could have largely eliminated this. Alternatively, if an
  34349. abbreviated Disc Spec was given, the filer could have filled it in
  34350. completely and thus discovered identical manifestations of filer
  34351. windows! It does no harm, but is confusing. If you set the pathnames for
  34352. your harddisc in the following short program:
  34353. 6.12
  34354. *Filer_OpenDir RAM::RamDisc0.$
  34355. 6.12
  34356. *Filer_OpenDir RAM::0.$
  34357. 6.12
  34358. *Filer_OpenDir RAM:$
  34359. 6.12
  34360. *Filer_OpenDir SCSI::HardDisc4.$ | set these
  34361. 6.12
  34362. *Filer_OpenDir SCSI::4.$| names to
  34363. 6.12
  34364. *Filer_OpenDir SCSI:$| your system
  34365. 6.12
  34366. *Filer_OpenDir ADFS::MCDay.$
  34367. 6.12
  34368. *Filer_OpenDir ADFS::0.$
  34369. 6.12
  34370. END
  34371. 6.12
  34372. you will find, on running, three identical filer windows on the screen
  34373. for RAMDisc, three for Fixed disc and two ADFS floppy! I think this is
  34374. sloppy implementation, akin to not checking the disc before issuing
  34375. ‘Free’!”
  34376. 6.12
  34377. Top bit set characters
  34378. 6.12
  34379. Mick Day uses a Star LC10 mainly for address labels. The dip switches
  34380. set it to the Epson character set. However, he sometimes needs to use
  34381. top-bit characters in foreign addresses. He thus has implemented a
  34382. complete look-up table for the characters 160-255, trying as near as
  34383. possible to get the Latin1 set. He says that, interestingly, it is
  34384. possible to dodge about and use the IBM set in addition to the Epson
  34385. set! The Basic program $.Latin1 on the monthly program disc summarises
  34386. it; anyone with a Star LC10 should be able to get it going. It might
  34387. work on some others as well.
  34388. 6.12
  34389. Form feeds
  34390. 6.12
  34391. Mick Day also writes: “I have spent a lot of time trying to stop the
  34392. PDriver module or its front end from issuing formfeeds. I would rather
  34393. decide for myself when the paper is to be thrown out onto the desk. Am I
  34394. missing some glaring instruction or is it really impossible to configure
  34395. this simple option? I experimented further with !Printers after reading
  34396. Tim Nicholson’s article (Archive 6.10 pp 43-47), but got no further. I
  34397. suspect that the formfeed is done by PDriver; I have set the printer
  34398. configure to the start sequence instead of the end and removed the
  34399. formfeed character, but all to no avail. It means that if you drag a
  34400. single address to print on labels, you need a specific Printer with a
  34401. page length of 9 − a sledgehammer to crack a nut! I want one driver for
  34402. the printer which does what I tell it. Can anyone tell me definitively
  34403. if the terminal formfeed is configurable or not? Otherwise I could be
  34404. experimenting until I die!”
  34405. 6.12
  34406. Testing a printer’s on-line status
  34407. 6.12
  34408. (See Archive 6.11 p51) Mick Day says that he prefers the following
  34409. routine to the one published last month (which he says is slower and
  34410. escape can interrupt it):
  34411. 6.12
  34412. DEF FNCheckPrinter
  34413. 6.12
  34414. *FX 5,1
  34415. 6.12
  34416. *VDU 2,1,0
  34417. 6.12
  34418. SYS “OS_Byte”,152,3 to ;f%
  34419. 6.12
  34420. f%=f%AND2
  34421. 6.12
  34422. *FX 21,3
  34423. 6.12
  34424. VDU 3
  34425. 6.12
  34426. *FX 5,5
  34427. 6.12
  34428. =f%
  34429. 6.12
  34430. (I’m no expert in these matters, but I believe that the *FX 5,1 only
  34431. applies if your printer is connected to the parallel port and the *FX
  34432. 5,5 might have unwanted effects if your system is set up differently
  34433. from Mick’s – HE.)
  34434. 6.12
  34435. He adds that the important point to emphasise is that “the fundamental
  34436. difference between earlier Acorn systems and RISC OS 3.1 is that, in
  34437. RISC OS 3.1, once you have issued a VDU 3 or equivalent, you are dead!
  34438. You can only switch the printer on or press <esc> (if it is enabled).
  34439. Page 18 of the Release Notes specifically refers to freezing when
  34440. attempting to print to ‘non-existent’ printers. They could have been
  34441. much more helpful here in only a few words. I wonder how many man-months
  34442. of time-wasting this has generated?”
  34443. 6.12
  34444. AZERTY keyboard
  34445. 6.12
  34446. Mick Day says that, try as he might, he cannot get an AZERTY keyboard
  34447. with *Country/*Language/*Keyboard France. He knows of at least one
  34448. Belgian colleague who was impressed by his Archimedes but who did not
  34449. buy one because he could not get the keyboard he wanted. (We have a
  34450. couple of modules that get round this problem − for French and German,
  34451. anyway − they are on this month’s program disc.)
  34452. 12
  34453. The following are taken from extracts from recent Acorn Customer Service
  34454. Newsletters which Barry Thompson has kindly forwarded:
  34455. 6.12
  34456. RISC OS 3 CMOS problems
  34457. 6.12
  34458. There have been a number of reports of systems not powering up properly.
  34459. Acorn suspect this is due to rogue CMOS RAM settings which occurred
  34460. while the system was used with RISC OS 2 and they “strongly recommend
  34461. that a ‘Delete-power-on’ is performed before the RISC OS 2 upgrade is
  34462. removed. This will ensure that CMOS RAM locations now used by RISC OS 3
  34463. are set correctly.”
  34464. 6.12
  34465. First Word Plus ‘Window Definition’ error
  34466. 6.12
  34467. If First Word Plus issues the message ‘Window definition will not fit’,
  34468. a ‘Delete power on’ will cure the problem (but may well, of course,
  34469. corrupt other CMOS settings)!
  34470. 6.12
  34471. Maximum DOS partition sizes
  34472. 6.12
  34473. DOSFS only supports DOS hard disc partitions up to 32Mb. If you create a
  34474. larger DOS partition, it will not be possible to access it from the RISC
  34475. OS desktop environment.
  34476. 6.12
  34477. DOS partitions larger than 32Mb can only be accessed from within the PC
  34478. card or PC Soft (i.e. PC emulator) environment. Therefore, if you wish
  34479. to transfer files between a large DOS partition and a RISC OS based
  34480. filing system, this should be done via floppy disc(s) or another
  34481. (smaller) DOS partition.
  34482. 6.12
  34483. Windows driver with the Acorn 486 card
  34484. 6.12
  34485. Following on from the last point ...
  34486. 6.12
  34487. The Windows Driver disc supplied with the PC card is in Acorn ADFS
  34488. format. So, if you have created a DOS partition which is larger than 32
  34489. Mb, it will not be possible to use the procedure outlined in the PC Card
  34490. User Guide to copy the file on this disc to the DOS partition. Instead,
  34491. you should use the following procedure:
  34492. 6.12
  34493. – From within the RISC OS desktop, format a blank floppy disc to 720Kb
  34494. DOS format.
  34495. 6.12
  34496. – Click <select> on the floppy disc drive icon to open a Filer window
  34497. showing the contents of the root directory of the DOS format floppy (at
  34498. this stage it will be empty).
  34499. 6.12
  34500. – Remove the DOS floppy and insert the Windows Driver disc. Click
  34501. <select> again and copy the file ARMVGA/DRV from the Windows Driver disc
  34502. to the DOS floppy.
  34503. 6.12
  34504. – Start the !PC Card  application.
  34505. 6.12
  34506. – Insert the DOS floppy again.
  34507. 6.12
  34508. – At the DOS prompt type:
  34509. 6.12
  34510. copy a:*.* C:\WINDOWS\SYSTEM
  34511. 6.12
  34512. to copy the correct Windows driver for use with the PC card into the DOS
  34513. partition.
  34514. 6.12
  34515. – Load the \WINDOWS\SYSTEM.INI file into the DR DOS text editor by
  34516. typing at the DR DOS prompt:
  34517. 6.12
  34518. C:\DRDOS\EDITOR C:\WINDOWS\ SYSTEM.INI
  34519. 6.12
  34520. – Use the cursor keys to move down to the line that reads:
  34521. 6.12
  34522. display.drv=vga.drv
  34523. 6.12
  34524. and change it to read:
  34525. 6.12
  34526. display.drv=armvga.drv
  34527. 6.12
  34528. – Save the modified file by holding down <ctrl> and pressing <K> and
  34529. then <Q>. Then press <escape> to return to the DR DOS prompt.
  34530. 6.12
  34531. – The new driver will be loaded the next time you start Windows, and a
  34532. different hourglass shape will indicate its presence.
  34533. 6.12
  34534. MEMC1a or no MEMC1a
  34535. 6.12
  34536. The following short command can be used from within Basic to find out
  34537. whether a MEMC1a chip is fitted:
  34538. 6.12
  34539. PRINT ?274 AND 1
  34540. 6.12
  34541. If the result is 1 then a MEMC1a is fitted.
  34542. 6.12
  34543. RISC OS 4 Wish List (continued)
  34544. 6.12
  34545. The following are from Richard Burnell:
  34546. 6.12
  34547. •    Shutdown – Include an “are you sure” window after you press <ctrl-
  34548. shift-F12> with an option to cancel the Shutdown, in case you press it
  34549. by accident.
  34550. 6.12
  34551. •    Unlimited directories – Allow more than 77 files in a directory.
  34552. 6.12
  34553. •    Filer windows – Allow file icons to be positioned where you want them
  34554. (as on an Apple Macintosh).
  34555. 6.12
  34556. •    Other disc formats – Include another extension to the filing system to
  34557. allow the reading and writing of Amiga and BBC B discs.
  34558. 6.12
  34559. •    Outline fonts – Allow unfilled outlines to be printed (without having
  34560. to convert them to paths in !Draw first) as you can in Windows on PCs.
  34561. 6.12
  34562. •    !Draw and !Edit should warn you when you try to save files with names
  34563. that already exist.
  34564. 6.12
  34565. •    !Draw – When you drag selected objects, it would be helpful to see the
  34566. shape of the objects moving (as you do in Artworks), not just the
  34567. bounding box.
  34568. 6.12
  34569. •    !Edit – should allow the option not to strip line numbers to be saved
  34570. in the configuration.
  34571. 6.12
  34572. •    Printer buffer – Provide one that allows background printing. (Richard
  34573. observes that this was advertised as a feature in the pre-release
  34574. RISC OS 3 reviews and finds it surprising that Acorn haven’t yet
  34575. released “a working printer buffer module”.)
  34576. 6.12
  34577. Finally, a point from Roger King. A similar suggestion has been made
  34578. before but it is worth repeating:
  34579. 6.12
  34580. •Distinguishing non-ADFS discs – When a non-ADFS disc (e.g. a DOS disc)
  34581. is mounted, the disc drive icon on the iconbar should change to a
  34582. different colour. (Some form of indication like this is particularly
  34583. important because the directory names in Filer windows for DOSFS, as for
  34584. other “image filing systems”, are prefixed ADFS!) Roger receives many
  34585. discs through the post and increasingly often he finds that the discs
  34586. are DOS format, presumably because people buy them pre-formatted. The
  34587. great snag in using DOS discs in the Acorn environment is the shorter
  34588. length of filename allowed. Roger often checks and modifies files sent
  34589. to him, then saves them back to the same disc with a “U” (for “Updated”)
  34590. tacked onto the end of the filename. If the original file has a name 8
  34591. characters long and is on a DOS disc this results in the original file
  34592. being overwritten by the updated file since the “U” is discarded from
  34593. the filename!  A
  34594. 6.12
  34595.  
  34596. Hints and Tips
  34597. 7.1
  34598. • A300/400 floppy drive problems − On the old A310 and A440 machines,
  34599. the disc drive has a cover on the head which has a notorious tendency to
  34600. fall off but the drive is not affected by a missing cover. A far more
  34601. usual fault on A310 drives is that the eject button falls off. This can
  34602. easily be fixed with glue. (Do take the drive out of the machine first
  34603. so you don’t glue the button to the front of the computer!)
  34604. 7.1
  34605. On the old machines (with only the disc drive button sticking out
  34606. through the front fascia) you have no option but to replace them with an
  34607. identical Sony drive mechanism (£102 through Archive − Ouch! Ed.) but on
  34608. the newer machines, like the A410/1, you can use most 720Kb drives
  34609. available. (Are you sure? Ed.) Knut Folmo, Norway.
  34610. 7.1
  34611. • Bespoke appointments’ calendar − I have written a program (on the
  34612. monthly program disc) to generate an Impression-based appointments
  34613. calendar and would like to share it with other people, courtesy of
  34614. Archive magazine. Using the program avoids filling in all those
  34615. birthdays, etc every year. It’s all done automatically from a text file.
  34616. It’s written in Basic and has no glitzy front end but it works OK.  Ian
  34617. Summers, Norwich.
  34618. 7.1
  34619. • Elite − A space station exists in witch space. After killing all the
  34620. other ships, switch to one of the status screens (f8?) and the compass
  34621. will reappear. By jumping repeatedly in that direction, you can
  34622. eventually find it. This station is strange in many ways and, while you
  34623. are experimenting, it is worth noting that its existence changes while
  34624. you are looking at the status screen. Try docking and shooting while
  34625. using <f8>.  Geoff Scott, Northampton.
  34626. 7.1
  34627. • Form feeds in printer drivers − I would like to respond to Mick Day’s
  34628. comments about form feeds (6.12 p57). The terminal form feed is
  34629. definitively (now there’s sticking my neck out) configurable. Mick does
  34630. not say whether he is using text or graphics output to his printer but
  34631. for the dot matrix drivers this is what happens.
  34632. 7.1
  34633. Text output:-
  34634. 7.1
  34635. send
  34636. 7.1
  34637. StartTextJob code
  34638. 7.1
  34639. SetLines code plus byte to set the page depth in text lines
  34640. 7.1
  34641. [your text formatted as per option set, eg none or draft highlights etc
  34642. using specified line feed/ linefeed cr codes]
  34643. 7.1
  34644. {gets to the end of a page
  34645. 7.1
  34646. [more text as above]}
  34647. 7.1
  34648.        .
  34649. 7.1
  34650.        .  repeat above for number         of pages
  34651. 7.1
  34652.        .
  34653. 7.1
  34654. EndTextJob code (this usually includes a Form Feed in the codes sent)
  34655. 7.1
  34656. For graphics you have:-
  34657. 7.1
  34658. SetLines code plus byte as above
  34659. 7.1
  34660. PageStart code
  34661. 7.1
  34662. [Graphics data using specified control strings]
  34663. 7.1
  34664. @{of a page
  34665. 7.1
  34666. PageEnd code
  34667. 7.1
  34668. SetLines code as above
  34669. 7.1
  34670. PageStart code
  34671. 7.1
  34672. [Graphics data as above]}
  34673. 7.1
  34674.       .
  34675. 7.1
  34676.       . repeat for number of            pages
  34677. 7.1
  34678.       .
  34679. 7.1
  34680. GraphicsFormFeed code PageEnd code
  34681. 7.1
  34682. thus, by defining your form feed character in the driver definition file
  34683. to be nothing, form feeds can be suppressed. Remember though that it
  34684. needs to be done for each graphics resolution and each text definition.
  34685. 7.1
  34686. I have a dummy printer def file which replaces the genuine control codes
  34687. with strings to illustrate what is going on. If it is merged into
  34688. !Printers’ Printer control window and set to print to file, output from
  34689. it can be viewed in !Edit to see what is going on. If a multipage text
  34690. file is dragged to it, the effect of text control codes can be viewed,
  34691. and similarly with graphics. The ideal is a two-page document using
  34692. outline fonts with, say, just one character at the bottom of each page
  34693. so that there is not too much graphics garbage to wade through but
  34694. mostly LineSkip codes. The printer def file and a suitable text test
  34695. file are on the Archive monthly disc. It includes a ‘Graptest’ file
  34696. which is a two-page Wordz “document”.  Tim Nicholson, Cranleigh.
  34697. 7.1
  34698. • Keyboard cleaning − We regularly get asked about keyboard problems,
  34699. many of which could be solved by cleaning. That, I think, is the answer
  34700. to Brian Cowan’s question in his Hardware Column last month. There have
  34701. been three main references to this in Archive (3.9 p10 + 5.1 p25 + 5.2
  34702. p28). I think these should cover most eventualities.  Ed.
  34703. 7.1
  34704. In response to Brian’s question, several subscribers sent in
  34705. descriptions of how to clean a keyboard. I think that much of it is
  34706. covered by the references above but I think Knut Folmo’s comments which
  34707. follow may also be helpful.  Ed.
  34708. 7.1
  34709. • Keyboard cleaning (2) − There are three different keyboards on
  34710. Archimedes computers.
  34711. 7.1
  34712. (1) KPL keyboard − This was used only on VERY old A310 machines. It can
  34713. be identified by looking at the CapsLock LED, which is mounted on the
  34714. right hand side of the key-top, as opposed to the left on the more usual
  34715. types. This is horrible to type on! If you still have such a keyboard,
  34716. throw it in the wastebin and buy a new! (Funnily enough, Acorn keyboards
  34717. are on special offer at the moment for £95 instead of £123 − strictly
  34718. while stocks last − I have about 10 of them. Ed)
  34719. 7.1
  34720. (2) Keytronics keyboard − This is the normal keyboard on most of the
  34721. A310s and nearly all the A400/1 range. If you take off one of the keys,
  34722. you will see a rubber cap that is mounted between the key and the
  34723. keyswitch.
  34724. 7.1
  34725. These keyboards do not like hair, biscuits and other kinds of dust. If
  34726. any keys fail, it most likely to be the CapsLock key because the hole
  34727. around the LED makes it possible for dust to get into the keyswitch. If
  34728. you have access to pressurised air, you can fix the key for a limited
  34729. period of time by taking off the keytop and blowing some air around the
  34730. LED. The best cure is to open the whole keyboard and clean it. This is a
  34731. lot of work and involves unscrewing approximately 40 screws. (See the
  34732. references mentioned above. Ed.)
  34733. 7.1
  34734. (3) Cherry keyboards − All A5000/A540 machines have this type of
  34735. keyboard, which use the same mechanics as the A3000. This is a very good
  34736. membrane keyboard which seems to be very long-lasting. The use of
  34737. membrane technology makes it impossible for dust to enter the electrical
  34738. contacts. This type of keyboard is also the best to type on. It can
  34739. easily be identified by taking off one of the keytops, which should have
  34740. a little spring mounted on the underside. (Cherry keyboards are the ones
  34741. we have on special offer at the moment. Ed.)  Knut Folmo, Norway.
  34742. 7.1
  34743. There is a fourth type: the A4000 type keyboard. We haven’t had any of
  34744. these go wrong yet, but we’ll report on them as and when they do. Ed.
  34745. 7.1
  34746. • Street maps using Draw − At the risk of being boring, since there have
  34747. been lots of articles about using Artworks or Vector to produce street
  34748. maps, I offer this solution using plain simple RISC OS 3 Draw. Firstly,
  34749. draw your map using ordinary thin lines for the roads. Then group all
  34750. the roads together and make their thicknesses (say) 4pt. Switch the grid
  34751. lock on and copy the roads. With the grid lock on, a copy is made
  34752. exactly one grid distance down and to the right. Therefore you can move
  34753. the copy exactly over the original. Now change all the lines in the copy
  34754. to colour white and thickness (say) 2pt and, hey presto, there’s your
  34755. street map.
  34756. 7.1
  34757. If you want different thickness roads, keep the grid lock on and move
  34758. the copy to a different bit of the paper. Then make the copy’s line
  34759. colour red (so you can see it) and ungroup both maps. Carefully change
  34760. the corresponding road lines to the required thicknesses − e.g. 8pt on
  34761. the original and 5pt on the copy for the main roads. Then re-group the
  34762. roads and move the copy over the original. Finally, change the copy to
  34763. white lines. There may be more elegant ways of generating road maps but
  34764. this one is “free” with the Archimedes! Notice also that there are no
  34765. problems with joining different sized roads (i.e. the outlines of the
  34766. small roads do not project into the big roads.  Cain Hunt, Cambridge.  A
  34767. 7.1
  34768.  
  34769. Hints and Tips
  34770. 7.2
  34771. • ArcDFS under RISC OS 3 − It has been reported on numerous occasions
  34772. that ArcDFS doesn’t work under RISC OS 3 − not true! (Or at least only
  34773. partly.) If a disc reports a failure, change the disc TITLE (using
  34774. appropriate option) to “”, i.e. an empty string, and hey presto!!
  34775. 7.2
  34776. Why is that necessary? I have not yet had a chance to bury myself in the
  34777. code to find out, I’m afraid.
  34778. 7.2
  34779. Note: The only other option that doesn’t work is Free, but personally I
  34780. don’t think that’s much of a problem. Format and Verify both work OK.
  34781. 7.2
  34782. P.S. Make sure the Step timings are set to those values given in the
  34783. original documentation, as they are reset when upgrading to RISC OS 3. 
  34784. R. George, Cambridge.
  34785. 7.2
  34786. • Grey Scales − I frequently use Draw to produce diagrams for inclusion
  34787. in text produced using Impression, or for independent printing. The
  34788. drawing package which comes with RISC OS 3 generally satisfies my needs.
  34789. 7.2
  34790. One facility which I often need is a grey scale which will produce
  34791. distinct shades on my LaserDirect printer, with the minimum of
  34792. ‘graininess’. Ignore the adverts which proclaim 256 Grey Shades! If you
  34793. need a ‘seamless’ transition from black to white, this is fine, but if
  34794. you want to print blocks of greys which all look different, you will be
  34795. lucky to manage 16 shades.
  34796. 7.2
  34797. The simplest approach to this problem is to try using the colours on the
  34798. palette. It can be helpful to have the features of your diagram
  34799. highlighted in blue, red, green, etc on the screen, but how will they
  34800. appear printed in black-and-white? If you use the default palette (which
  34801. I do not!) the 16 colours come out in various shades of grey, as shown
  34802. below. The squares are labelled with the appropriate colour numbers, and
  34803. arranged from white to black. These squares appear on my Impression
  34804. screen, of course, in glorious technicolour.
  34805. 7.2
  34806. I cannot be sure how this will turn out if Paul prints it in Archive,
  34807. but on my printer there are only seven, perhaps just eight,
  34808. distinguishable shades. They are all fairly grain-free, printed at
  34809. 600×600 dpi, so a suitable selection can be used. If you want them to
  34810. appear on the screen as shades of grey, use ‘colours’
  34811. 0  ◰2  1  2  3  4  5(?)  7. If you prefer them displayed in colour, use
  34812. the series 0  ◰2  9  ◰4  ◰5  ◰0  5(?)  11  7.
  34813. 7.2
  34814. I have continued this investigation to attempt to find the best possible
  34815. grey scale using colours not necessarily on the palette. I have
  34816. restricted my investigation to grey ‘colours’, i.e. those using the
  34817. same, or similar, intensities of red, green and blue. That is enough to
  34818. be going on with!
  34819. 7.2
  34820. !Draw allows you to select each of the three components on a scale
  34821. 0−255. The !Palette utility only allows 16 intensity levels for each
  34822. component (producing the 4096 standard colours), so I have started with
  34823. this restriction. Representing the 16 degrees of intensity by the hex-
  34824. digits 0−F, and allowing a difference of only one between the three
  34825. components, I have devised the 16-grey-shades scale shown below.
  34826. 7.2
  34827. How these colours appear on your screen depends on what palette you are
  34828. using. In front of me now, I can see shades of buff/brown, because I
  34829. have modified the standard, rather harsh, palette. You could try setting
  34830. up a palette using these as colours 0−15. The result on the screen is
  34831. pretty horrible! The result in print, however, is quite good, although
  34832. the lighter shades are a bit grainy.
  34833. 7.2
  34834. Using the Fill Colour facility of Draw gives us greater flexibility,
  34835. because we can select from 0−255 for each primary colour. To keep things
  34836. fairly simple, I have tried only ‘pure grey’ shades, in which the
  34837. intensities of red­green­blue are always the same. This gives 256 shades
  34838. to try.
  34839. 7.2
  34840. Using this technique, LaserDirect clearly does not print 256 shades.
  34841. Groups of four consecutive shades always appear identical, so our
  34842. selection comes down to 64 shades. I printed blocks of these shades,
  34843. each identified by the intensity number used for each of the three
  34844. components, 0 = black ... 255 = white. The shades which show the least
  34845. grain are, for some reason, those numbered 243  235  227  219  etc, i.e.
  34846. those whose codes are 8k+3.
  34847. 7.2
  34848. There are 32 such shades, but adjacent ones are very similar in print,
  34849. often apparently identical. In an attempt to create a usable scale, I
  34850. have selected ten of these codes (235 219 203 187 171 155 139 123 99 and
  34851. 67) plus 0 (black) and 255 (white). These are the shades which I will
  34852. try for my next few Draw diagrams. Even these shades show little
  34853. difference between adjacent pairs, and it is desirable to use alternate
  34854. ones only, if possible.
  34855. 7.2
  34856. Colin Singleton, Sheffield.
  34857. 7.2
  34858. • Hard disc usage − How much space do my hard disc files occupy? The
  34859. answer depends on how I try to measure them! My investigations resulted
  34860. in the recovery of 5.6Mb (13%) from an unexpected source which I don’t
  34861. think has been mentioned previously in Archive.
  34862. 7.2
  34863. We all know that the disc usage figures given by *Free and *Count are
  34864. different. *Count returns the total number of data bytes in the files,
  34865. in my case 22.3Mb. *Free returns the total number of bytes used (or
  34866. reserved) on the disc, in my case 42.8Mb. These are different for at
  34867. least two reasons.
  34868. 7.2
  34869. Firstly, disc space is allocated to files in units which vary from drive
  34870. to drive. In the case of the Acorn SCSI on my A540, this unit is 1Kb.
  34871. Hence, on average, 512 bytes is wasted at the end of each file − this is
  34872. included in the bytes used returned by *Free, but not by *Count. For the
  34873. 5,134 files on my drive, this totals 2.5Mb.
  34874. 7.2
  34875. Secondly, some space is reserved for each Directory Header. The Index
  34876. occupies 2Kb, irrespective of the drive and filing system which, for my
  34877. 1204 directories, amounts to 2.4Mb, increasing *Count to 24.7Mb.
  34878. However, SCSIFS reserves a larger allocation per directory, as noted by
  34879. several Archive readers, including Steve Drain (Archive 5.12). On the
  34880. A540, each directory is allocated 15Kb, of which only 2Kb is occupied by
  34881. the Index. Some of the rest may, if I am lucky, be occupied by small
  34882. files subsequently created within the directory. If I am unlucky, I lose
  34883. 13Kb per directory. For my 1204 directories, this could amount to
  34884. 15.3Mb.
  34885. 7.2
  34886. Adding this 15.3Mb to the 2.5Mb noted above, gives a maximum wastage of
  34887. 17.8Mb. The actual discrepancy, however, was 42.8 − 24.7 = 18.1Mb, so
  34888. there must have been something I hadn’t discovered. In order to
  34889. investigate, I considered my disc directories in three groups, as
  34890. identified in the table overleaf.
  34891. 7.2
  34892.  
  34893. 7.2
  34894. The largest is headed by a directory called Documents. This contains all
  34895. my Impression documents, plus a large number of drawfiles and several
  34896. hundred old First Word Plus text files retained for reference. When I
  34897. discovered the 13Kb per directory wastage, I realised that Impression,
  34898. which normally uses three directories per document, was wasting a great
  34899. deal of space.
  34900. 7.2
  34901. I tackled this problem some time ago, by saving most of my Impression
  34902. documents as Text only. This Impression feature in fact stores the
  34903. Styles with the text, but does not store graphics or frame data. If I
  34904. drag one of the resulting text files onto the Impression icon on the
  34905. iconbar, this displays the text in its original fonts, sizes, etc. If,
  34906. instead, I drag the text of a letter into the document which contains a
  34907. ‘blank’ letterhead, the letter is restored exactly as it was originally
  34908. created − provided it contained no graphics and no frames other than
  34909. those defined in the letterhead document.
  34910. 7.2
  34911. I was thus able to store most of my Impression documents as Text only,
  34912. and recover several megabytes, without losing anything. This was done
  34913. some months ago, before the exercise I am describing here. At that time,
  34914. I also compressed all these ‘document’ files, using Compression and they
  34915. are now read and written using Cfs. Some of the other directories on my
  34916. disc are also held in compressed form and are identified below as Other
  34917. Cfs. The rest (mainly fonts and software) are not compressed and are
  34918. identified as Non-Cfs.
  34919. 7.2
  34920. The table shows the *Count for each group of files and the *Count
  34921. obtained via Cfs, which shows what the count would have been if the
  34922. files had not been compressed. For interest, I have also shown the sizes
  34923. of the backups for each category. These were obtained using by !Backup,
  34924. into a temporary directory on the same disc and noting the *Counts of
  34925. the backup data directories created (excluding the recovery software
  34926. stored with the backup data). !Backup uses !Spark compression which, we
  34927. can see from the figures, has some effect on the Non-Cfs files. For the
  34928. others, however, no further compression is possible and the backup
  34929. actually uses more space than the live files, owing to the directory
  34930. structures and other parameters stored by !Backup.
  34931. 7.2
  34932. In order to assess the Actual Mb used for each group, I copied (by
  34933. dragging) each in turn into a temporary directory on the same disc and
  34934. noted the decrease in *Free bytes. Then I discovered that the three
  34935. figures obtained did not total the Used bytes given by *Free for the
  34936. whole disc − the discrepancy being over 5Mb. After some experimentation,
  34937. I concluded that the copying process did not produce a precise ‘clone’
  34938. occupying the same space as the original. The only way to discover the
  34939. space occupied by a group of directories is to delete it and note the
  34940. increase in *Free bytes.
  34941. 7.2
  34942. Hence I copied each group in turn, then deleted the original, rather
  34943. than the copy, and noted the change in total usage arising from the
  34944. deletion rather than the copying. The copies were then retained in place
  34945. of the originals. This process not only revealed the true original
  34946. sizes, but also gained 5.6Mb free space, because the copies occupied
  34947. less space than the originals!
  34948. 7.2
  34949. Where did this windfall come from? The first point to note is that it
  34950. was all gained in the Documents directories. These have been very active
  34951. in the past. Apart from the usual process of addition and amendment of
  34952. documents, the filing system has also had to endure the process of
  34953. replacing most of the Impression documents with text files, the
  34954. compression of all the files and, recently, a major exercise of
  34955. restructuring the directories and renaming most of the files. Many of
  34956. the recent changes were made by copying files, then deleting the
  34957. originals, rather than by renaming. All this activity must have produced
  34958. considerable small-scale fragmentation of the free space, which is
  34959. perhaps not mapped and included in the *Free bytes. *Compact (which
  34960. should not be needed with this filing system) did produce a
  34961. simplification of the free space *Map, but did not change the number of
  34962. *Free bytes. Copying the files in sequence, however, produces a new
  34963. directory with no fragmented waste.
  34964. 7.2
  34965. As a result of all this, I can now calculate the wasted space as 8.5Kb
  34966. per directory, instead of an apparently impossible 13.3Kb. If I could
  34967. recover all of this, I would save another 10Mb in total, but that seems
  34968. to be impossible. I could recover perhaps three quarters of it by re-
  34969. formatting the disc using a smaller File Allocation, except that I don’t
  34970. want to do that unless it is really necessary, and in any case, I don’t
  34971. appear to have the right Format program ...!  Colin Singleton,
  34972. Sheffield.
  34973. 7.2
  34974. • Image enhancement − I think I can offer a solution to Cain Hunt’s
  34975. request for a cheap image enhancer (7.1 p26). With hindsight, I might
  34976. have included the information in the notes on colour printing (7.1 p35).
  34977. Version 0.90 of Acorn’s !ChangeFSI application comes ‘free’ on the RISC
  34978. OS 3.1 Support Disc and its many facilities include most of the sprite
  34979. processing options I suggested; brightening and gamma correction for
  34980. example. It also accepts some foreign formats (e.g. TIFF), converting
  34981. them to sprites.
  34982. 7.2
  34983. The documentation is not so hot. There seems to be nothing between the
  34984. rather sketchy notes starting on page 207 of the RISC OS 3 Applications
  34985. Guide and the detailed but very complex FSIinfo file in the !ChangeFSI
  34986. directory. However, this desktop application is intuitive to use, and
  34987. trial and error will often produce the desired result. Although it is
  34988. possible to apply two or more processing functions in parallel, I do
  34989. support the notes’ recommendation to operate on an unmodified file and
  34990. try changing only one parameter at a time.
  34991. 7.2
  34992. The only process I would like to see added to !ChangeFSI is Chameleon’s
  34993. ‘Weaken’ function which, for me, seems to give more effective control of
  34994. colour sprites than Brighten.
  34995. 7.2
  34996. I spotted a documented facility in !ChangeFSI which allows very large
  34997. output files to be built in ‘strips’ using the parameter ChangeFSI
  34998. <source address><destination address>28-max<n> where n is the desired
  34999. size of the strip, e.g. 512Kb. I wonder if some very clever person might
  35000. be able to use this as a basis for a utility to transfer large
  35001. TIFF files between Archimedes/PCs/Macs, split between two or more MS-DOS
  35002. floppy discs?
  35003. 7.2
  35004. As a further postscript to the colour printing notes, a reader has
  35005. recommended Hewlett Packard HP 92296U transparencies for my Canon LBP-4;
  35006. about 32p each. I’ve since tried them and the results, especially on 600
  35007. dpi graphics, are excellent.  Jim Nottingham, York.
  35008. 7.2
  35009. • Indelible ink − At long last, there is an indelible ink refill
  35010. available for HP Deskjet cartridges. They are available from Misco
  35011. Computer Supplies, Faraday Close, Park Farm Industrial Estate,
  35012. Wellingborough, NN8 6XH. A two-refill kits costs £13 plus postage.  Mike
  35013. King, Guernsey.  A
  35014.  
  35015. Hints & Tips
  35016. 7.3
  35017. • Two independent stories with Ovation − Richard Hallas demonstrated an
  35018. excellent method of creating two independent stories with Impression in
  35019. the ‘Hints & Tips’ column (Archive 6.12 p27). To perform a similar task
  35020. with Ovation is not quite so easy but there is a way that this layout
  35021. can be obtained.
  35022. 7.3
  35023. Double-click on the Ovation application to load it onto the iconbar.
  35024. Click <menu> over Ovation’s icon and select the ‘New Document’ option.
  35025. From this menu, choose the A4 page, ‘Portrait’ orientation and single
  35026. column options. For this example, I will create two independent columns
  35027. on an A4 sized page. Similar layouts can be created with other page
  35028. sizes.
  35029. 7.3
  35030. Once Ovation’s main window has been opened, click <menu> and select the
  35031. ‘Page’ menu. From this menu click on ‘Show Master Pages’. You will now
  35032. see Ovation’s master page for the A4 document. Ovation, unlike
  35033. Impression, does not allow you to delete any frames on the master page.
  35034. Alter the width of the A4 frame by choosing ‘Object’ from Ovation’s main
  35035. menu and then from the ‘Object’ menu select ‘Modify Frame’.
  35036. 7.3
  35037. Set the main frame width to 90mm and height to 255mm. After modifying
  35038. the frame it will be displayed on the left hand side of Ovation’s master
  35039. page. Now create an identical sized text frame, using the text frame
  35040. icon on Ovation’s tool bar, and place it on the left hand side of the
  35041. master page, making sure that it aligns perfectly with the left hand
  35042. frame. Check with Ovation’s ‘Modify Frame’ option that this newly
  35043. created frame has identical dimensions to the previously created frame.
  35044. At this stage, any header or footer frames should be added to the master
  35045. page. You may well have to alter the height of both main text frames to
  35046. accommodate the header and footer frames.
  35047. 7.3
  35048. Now quit the master page and return to Ovation’s main window. Ovation
  35049. still displays the original A4 frame outline. To display your newly
  35050. created dual frame layout, you will need to select the ‘Page’ option
  35051. from Ovation’s main menu. From this ‘Page’ menu select the ‘Insert Page’
  35052. option and a box ‘Insert Pages’ will appear on the screen. Click on ‘OK’
  35053. and the newly created page will now be displayed in Ovation’s window.
  35054. 7.3
  35055. If you have already created two independent text stories with another
  35056. word processing package, you will need to have both stories saved as
  35057. plain text files, ready to drop into each newly created Ovation frame.
  35058. 7.3
  35059. Click <select> on the first of these text stories and drag the file into
  35060. Ovation’s left hand main frame, making sure that this frame is the one
  35061. selected. The text will fill the frame and generate the necessary number
  35062. of linked frames to accommodate the story. Remember that this left hand
  35063. frame was originally Ovation’s A4 master page frame, adjusted to the
  35064. required size to accommodate another frame alongside it.
  35065. 7.3
  35066. If you now select and drag the other text story into Ovation’s right
  35067. hand frame, you will notice that only the first right hand frame will
  35068. fill with text, and that Ovation’s text overflow arrow is displayed at
  35069. the bottom of this frame. For the text in this right hand frame to flow
  35070. through the length of the entire document, you will need to select the
  35071. ‘Link Frame’ option from Ovation’s tool bar. Once this has been
  35072. selected, you must then individually link each right hand frame
  35073. throughout the length of the document. As you link each right hand
  35074. frame, you will notice that the text story flows from the previous
  35075. frame. Note that you can choose the ‘Link Frame’ option from the tool
  35076. bar with <adjust>. If this is done, this option will remain selected,
  35077. but will significantly slow down the scrolling speed of pages.
  35078. 7.3
  35079. It is most important to drop the first text story into Ovation’s left
  35080. hand frame. This is the frame that generates automatically linked frames
  35081. as the text flows throughout the document.
  35082. 7.3
  35083. Ovation can, of course, be used to produce the original stories, with
  35084. the proviso that the left hand frames are used to write the first story.
  35085. If required, the two frames on Ovation’s master page may be swapped
  35086. over, so that the first story can be set in the right hand frame.  Mike
  35087. King, Guernsey.  A
  35088. 7.3
  35089.  
  35090. Hints & Tips
  35091. 7.4
  35092. • Backing up PC partitions. When backing up a PC partition (with
  35093. filetype DosDisc) from a HardDrive with RISC OS 3 the ADFS sees the
  35094. files in the partition as individual files so backs them up as such. So
  35095. when you come to reinstate the partition afterwards the PC partition
  35096. will no longer work, i.e. it will be a normal directory with files in.
  35097. The way to overcome this is to reset the file type to Text before
  35098. backing up and change it back afterwards.  Brian Cocksedge, W Sussex.
  35099. 7.4
  35100. • Elite Cheat. On this month’s program disc (£2 through Archive) is a
  35101. cheat for Elite v1.02 made with The Hacker program from DoggySoft. The
  35102. cheat allows you to do more than the normal game will allow. The
  35103. functions are made by using the right Ctrl key and some other keys not
  35104. used in the game. Load the cheat module after you have the Elite
  35105. commander on the iconbar and read the instructions carefully. It enables
  35106. you to stop dead in space, go like a bat out of hell, have loads of
  35107. energy bombs (useful for blasting those rock grabbers), have an
  35108. indestructible energy unit, unlimited rockets and, as a small bonus,
  35109. kills the asking of the word from the book when saving a commander file
  35110. after you have run the game, back to the Desktop (saving time).
  35111. S Edwards, W Midlands.
  35112. 7.4
  35113. • Epson Stylus 800 cartridge life − When the cartridge I had in my new
  35114. Epson Stylus 800 ran out after it had printed only about 300 to 400
  35115. sheets (instead of the quoted 700), I contacted Epson to discuss the
  35116. matter! They asked whether I pressed Pause before switching off the
  35117. printer. I said I did not and asked why it was important. They told me
  35118. that it was because the printer goes through the print head cleaning
  35119. process on every start-up unless Pause is pressed before switch-off. It
  35120. is only necessary to clean the print head “about once a month”. They
  35121. admitted that this is not mentioned in the manual(!), so I thought I
  35122. would pass this gem of information on to other Archive subscribers! 
  35123. Stan Haselton, Abbots Langley.
  35124. 7.4
  35125. • JP150 sheet feeder − Owners of JP150 printers may be interested to
  35126. know that the sheet feeder for the Integrex Betajet seems to be exactly
  35127. the same as the one for the JP150. The good news is that the Integrex
  35128. one costs approximately £40 +VAT (£47) as against £77 inc VAT. I wonder
  35129. why the Acorn product is so much more expensive?  Alan Shelton, Sutton-
  35130. in-Ashfield.
  35131. 7.4
  35132. • Magazine storage − An alternative to the Archive magazine binders is
  35133. to use what are called K-Bins which are basically topless cardboard
  35134. boxes. They are designed for storing components but work quite nicely
  35135. for Archive magazines and cost about £1.15 each. I am happy to supply
  35136. them to people at cost plus postage − let me know if you are interested.
  35137. Bob Ames, Dept of Music, City University, Northampton Square, London
  35138. EC1V 0HB.
  35139. 7.4
  35140. • Mouse mat grooming − Next time you groom your mouse, take a look at
  35141. your mat. If it has a layer of stubborn fibres, cat hairs etc, try using
  35142. one of those rolling, tacky lint removers that you use on suits and
  35143. jackets.  Nik Kelly, Liverpool.
  35144. 7.4
  35145. • PC card and screen blanking − After installing a new hard drive, I had
  35146. to re-install everything and set the computer up as though it were new.
  35147. While I was restoring some of the PC programs, my screen went blank and
  35148. no keypresses would bring it  back. What seemed odd was that the
  35149. computer was still working, reading the disc.
  35150. 7.4
  35151. Each time this happened, I reset the computer and then, when I was at
  35152. Acorn World 93, I had a word with Aleph One. They explained that, when
  35153. the PC card had “input focus” all keystrokes were passed through to the
  35154. card and so RISC OS was unaware that keys had been pressed − so the
  35155. screen blanker was coming into operation and was locking in the blank
  35156. state. Because of this, I would need to disable the screen blanker in
  35157. order to use the PC card.
  35158. 7.4
  35159. As I don’t use the blanker very much, it was only a slight nuisance, but
  35160. I carried out an experiment and found out that mouse movement was still
  35161. done via the main operating system. Because of this, all that is needed
  35162. to get the screen back is a very slight movement of the mouse.
  35163. 7.4
  35164. I suppose that if you were wanting to work with text in a word processor
  35165. it would be a good idea to disable the screen blanker, but most of the
  35166. time it is unnecessary.  David Wild, Hemel Hempstead.
  35167. 7.4
  35168. •  Scanners and Turbo Drivers − A slight problem for users of Turbo
  35169. Drivers is that, sometimes, the printout from ArcFax with CC’s scanner
  35170. becomes garbled for no sensible reason. The solution is to turn your
  35171. printer on. It does not have to be online but just switched on. It works
  35172. every time.  Tord Eriksson, Sweden.
  35173. 7.4
  35174. • Time errors − Recently, I found that whilst !Alarm, and indeed most
  35175. other applications, could work out the correct time, those I had written
  35176. in C were wildly inaccurate (over a year and a half out!).  The same
  35177. program would work fine on the office A5000 but on my RISC OS 3 A3000,
  35178. it refused to give me anything but 1995.  Finally, I tracked the problem
  35179. down to the Territory Manager (literally just by chance, I was actually
  35180. looking up ‘time’ in the PRM’s and spotted it.  Somehow the configured
  35181. timezone was −23:45, well outside the allowed limits of +/−13 hrs. 
  35182. !Alarm took off the correct value but when I reset it to zero, the
  35183. machine jumped ahead by a day. Why CLib gave such a large error, I don’t
  35184. know.  Matthew Hunter, NCS.  A
  35185. 7.4
  35186.  
  35187. Hints and Tips
  35188. 7.5
  35189. • CC Turbo & Laser Direct Drivers − A few people have discovered a
  35190. problem that occurs when you try to run the RISC OS !Printers after
  35191. having run a Turbo Driver or a Laser Direct driver. The error “Module
  35192. PDriver 3.16 or later is required” appears. To clear this, do a
  35193. *RMReinit PDriver before using the Acorn driver.
  35194. 7.5
  35195. • File copying on floppies − When copying from one floppy to another,
  35196. the overall copy time can be reduced by opening the task manager and
  35197. dragging the Next slot to 800Kb (or 1600Kb for an HD disc if you have
  35198. the memory). This means that the next task to request space (i.e. the
  35199. filer) will have enough space to read in the entire contents of one
  35200. floppy, so that you don’t have to swap discs more than once.
  35201. 7.5
  35202. On large copy jobs (say between two hard discs) the larger area the
  35203. filer gets, the faster the copying because fewer reading/writing cycles
  35204. will be needed. You can either adjust the Next slot or, once copying has
  35205. begun, drag out the Filer Action Window task as large as it will go.
  35206. When copying is complete, the space is regained.
  35207. 7.5
  35208. • Floptical drives and faulty floppies − An article in a German PC
  35209. magazine claimed that, due to their much more elaborate construction,
  35210. flopticals drives could handle many discs which caused normal floppy
  35211. drives to give up; I can report to all floptical owners that this claim
  35212. holds true for the Acorn world, too.
  35213. 7.5
  35214. A software upgrade arrived on a disc which my floppy drive could not
  35215. read − a disc error 08 was reported and Verify found a massive 56
  35216. defects! My floptical drive, however, had no problem at all with the
  35217. disc − it verified OK and the software could be loaded and runs
  35218. perfectly. So, when the readability of a disc is a borderline case,
  35219. giving the disc to the floptical drive to read might well help.  Jochen
  35220. Konietzko, Köln, Germany
  35221. 7.5
  35222. • Printer driver problem − “SWI &42940 Not known”. This error was
  35223. reported recently in another printer driver problem. A quick look at the
  35224. PRM showed this to be a BufferManager SWI. The buffer module had become
  35225. unplugged which was causing the problems. It is not such an obvious
  35226. problem though because the error appears to come from the printer
  35227. driver. The solution is to press <f12> and type *RMReinit BufferManager
  35228. <return> and then another <return> to get back to the desktop.  A
  35229. 7.5
  35230.  
  35231. •  A4 battery life − Many A4 users may have noticed that the charge of
  35232. the A4 battery becomes shorter after each recharge. Apparently, if the
  35233. battery is not discharged completely it does not run for the full
  35234. capacity upon recharge. One solution is to unplug the battery manager
  35235. from the command line and leave the computer on until the red light
  35236. stops blinking. The battery will then be fully discharged and can then
  35237. be recharged as normal.
  35238. 7.6
  35239. I now leave the battery manager unplugged permanently. I just have to
  35240. make sure I save everything regularly. When the red light flashes to
  35241. indicate the battery being flat, I have a couple of minutes to save the
  35242. latest alterations and shutdown.  Awie Bosman, South Africa.
  35243. 7.6
  35244. •  Beware the old module! − I have discovered that some older (slightly
  35245. badly-behaved) applications load their own modules in their Run file.
  35246. Presumably this is because RISC OS 2 didn’t have all the modules in ROM
  35247. and an application needing a module newer than the RISC OS 2 one would
  35248. need to load it itself − if it was too lazy to use SysMerge, that is. If
  35249. you have RISC OS 3, these applications can have the disconcerting effect
  35250. of replacing a RISC OS 3 ROM module with an older version of the same
  35251. module.
  35252. 7.6
  35253. I came across this when trying to run Almanac − I got the error message
  35254. “Module .....$.!System.FPEmulator not found”. Looking into System
  35255. confirmed that there was no such module under this pathname, and several
  35256. minutes of panic ensued while I played ‘hunt the module’. Finally, a
  35257. hard reset seemed to restore Almanac to perfect behaviour, the module
  35258. was restored and I was so relieved that I forgot about the problem for
  35259. some weeks.
  35260. 7.6
  35261. The problem recurred but this time, Ovation would not run either, giving
  35262. a similar message. I realised that, in RISC OS 3, FPEmulator is in ROM,
  35263. so something must have happened to the ROM module. On checking *Help
  35264. ROMModules, I found FPEmulator was “Dormant”. Trying to *RMReinit it had
  35265. no effect. Then I remembered that I had been playing CIS’s Mah Jong.
  35266. Sure enough, in the application directory was a copy of FPEmulator and
  35267. in the Run file was the line “RMLoad <obey$dir> FPEmulator”. Inspecting
  35268. this module showed it to be version 2.60 (the ROM module is 2.87).
  35269. 7.6
  35270. In the Almanac Run file is the line “RMEnsure FPEmulator 2.70 Error You
  35271. need FPEmulator 2.70 or later”. So, Mah Jong had been quietly loading an
  35272. old module without this being at all obvious until another application
  35273. wanted the ROM version. Deleting the line from Mah Jong’s Run file cured
  35274. the bug but Mah Jong seems to get along only intermittently with the new
  35275. FPEmulator, unpredictably throwing up “invalid floating point operation”
  35276. errors. (Should it do this? What about “backwards compatibility”?)
  35277. Putting “RMKill FPEmulator” followed by “RMReinit FPEmulator” at the end
  35278. of Mah Jong’s Run file doesn’t have any effect, but running the same two
  35279. lines in a separate Obey file does work. Does anyone know why?
  35280. 7.6
  35281. The moral would seem to be to inspect the directories of applications
  35282. you have been using if your modules start misbehaving. They may be
  35283. loading all sorts of things you don’t want.  Peter Young, Cheltenham.
  35284. 7.6
  35285. •  Computer hang-ups − There’s a hint in Computer Concepts’ Turbo Drivers
  35286. manual which suggests that if the printer should ‘stall’, selecting
  35287. <f12> followed by <return> will re-start the printer.
  35288. 7.6
  35289. Quite by chance, I found that doing the same thing can occasionally
  35290. clear a computer hang-up. Specifically, it may work when you can still
  35291. move the mouse pointer but clicking on an icon, etc has no effect.
  35292. 7.6
  35293. The beauty of this is that, rather than having to perform a soft or hard
  35294. reset to clear the hang-up and thus losing any unsaved work, you are
  35295. returned to the desktop as it was before selecting <f12> <return>, i.e.
  35296. all windows and documents are restored.  Jim Nottingham, York.
  35297. 7.6
  35298. •  !FontEd under RISC OS 3.1 − Ronald Alpiar’s problem of invisible
  35299. coordinates in last month’s Help!!! (7.5 p8), apparently only occurs in
  35300. 256 colour modes. In 16 colours they reappear.
  35301. 7.6
  35302. (I think this could be linked with an obscure problem which one of our
  35303. subscribers has reported to Risc Developments. When using Ovation in
  35304. certain 256-colour screen modes, inverted text, i.e. white on black,
  35305. becomes black on black! Risc Developments say they have a partial
  35306. solution and are working further on the problem. Ed.)
  35307. 7.6
  35308. •  Keystroke hints − I’ve just started using Keystroke myself, in
  35309. earnest, and, quite frankly, it is brilliant! It will save me huge
  35310. amounts of time with all the text editing I do from day to day. For
  35311. example, contributors often say, “Press the menu button to do such and
  35312. such” instead of “Press <menu>... ”. I now click on “the” and press
  35313. <alt-f6> and the change is made at a stroke! It is done by making the
  35314. key insert the text |D<60>\S-⇨\\⇦\<62>|D. The <60> and <62> have to be
  35315. used to create the triangle brackets which, as a beginner to Keystroke,
  35316. confused me for a while.
  35317. 7.6
  35318. I find Impression’s <shift-ctrl-Q> useful for inverting charactres (sic)
  35319. − a very common typing error! However, I sometimes need to change “to
  35320. boldly go” into “boldly to go” (yuk!) so I produced a key, <alt-Q>, to
  35321. invert adjacent words by using |D\S-⇨\|V − simple but effective − just
  35322. put the cursor somewhere in the first word and click <alt-Q>.
  35323. 7.6
  35324. I often have to delete a comma when someone has put one in the, wrong
  35325. place. So <alt-\> generates the string \S-⇨\\⇦\|? which moves to the
  35326. beginning of the next word, back one space and then deletes one
  35327. character. This has the effect of deleting the final character of the
  35328. word in which you have just clicked, so it could also be used to change
  35329. a plural to a singular. The only time this falls down, of course, is
  35330. when the next word is separated by an extra character like a bracket or
  35331. somesuch.
  35332. 7.6
  35333. These special keys may seem a little unnecessary but to someone who does
  35334. as much editing as I do every day, they can save quite a bit of time.
  35335. 7.6
  35336. Finally, in the days of programmable function keys on the old BBC Micro,
  35337. I used to use |[ to generate an <escape>. This seems to work OK with
  35338. Keystroke and avoids having to use \ESCAPE\ in a text string. I remember
  35339. it because the [ is like an E for escape.  Ed.
  35340. 7.6
  35341. (There are a huge number of time-saving tricks that could be done with
  35342. Keystroke, so do send in your own Keystroke hints & tips. Ed.)
  35343. 7.6
  35344. •  Resultz and Continental numbers − I have just discovered a feature
  35345. offered by Resultz which should delight Continental spreadsheet users.
  35346. The sixth number format in the list offered by the style editor, which
  35347. looks so strange with its character combinations “,.” and “.,” actually
  35348. is used to replace the English way of writing numbers with the
  35349. Continental one, so that a number like 3,500.50 will appear instead as
  35350. 3.500,50!  Jochen Konietzko, Köln.
  35351. 7.6
  35352. •  RISC OS !NewLook − Now that everybody has had a chance to play with
  35353. the new look desktop as distributed at Acorn World 93 (and numerous
  35354. other sources), we would be interested to hear what you think of it. Do
  35355. you use it? If not why not? Does it do everything it should? How does it
  35356. compare to other user environments (e.g. Windows 3.1, NeXT)? What would
  35357. your ideal RISC OS 4 desktop look like? Please write to Archive with
  35358. your comments.
  35359. 7.6
  35360. •  Schedule and Spell (Pocket Book) − There seems to be no mention at all
  35361. of Spell in any of the manuals, except for a section in the User Guide
  35362. on how to spell-check in Write. The Schedule release note says that
  35363. “this replaces the Spell application supplied with your Pocket Book”,
  35364. but does not tell you that you shouldn’t delete Spell before installing
  35365. Schedule. If you do this, as I did, you find, somewhat oddly, that you
  35366. can check spelling in Write but that you can’t save to the global
  35367. dictionary − you can’t, of course, use Spell as a free-standing
  35368. application because it isn’t on the Desktop. If you reinstall Spell,
  35369. from whichever drive you have Schedule in, all works as it should,
  35370. though you have to learn how to use Spell from the Help facility, which
  35371. is very good.
  35372. 7.6
  35373. Nowhere seems to make it plain, however, that to use document
  35374. dictionaries, you have to enable this from the Setup/Install menu in
  35375. Spell. Incidentally, document dictionaries are not kept in the WRD
  35376. directory with “the same name and in the same directory as the document,
  35377. but with the file extension D$S”, as the manual says, but in a separate
  35378. D$S directory with the same name as the document.  Peter Young,
  35379. Cheltenham.
  35380. 7.6
  35381. •  Style − Changing date and time formats − Impression Style allows the
  35382. current date or time to be inserted into a document. By default,
  35383. Impression Style enters ‘25th January 1994’ for the date and ‘6:52:13
  35384. am’ for the time. Both formats may be changed quite easily. You can have
  35385. several different date and time formats stored and swap from one to the
  35386. other while you work.
  35387. 7.6
  35388. The date is inserted in one of three ways.
  35389. 7.6
  35390. •  By pressing <ctrl-shift-D>
  35391. 7.6
  35392. •  By clicking on the insert icon on the tool bar and clicking on Current
  35393. date
  35394. 7.6
  35395. •  From the menu: Utilities−>Insert−>Current date
  35396. 7.6
  35397. The time is inserted in one of two ways
  35398. 7.6
  35399. •  By clicking on the insert icon on the tool bar and clicking on Current
  35400. time
  35401. 7.6
  35402. •  From the menu: Utilities−>Insert−>Current time
  35403. 7.6
  35404. The format used for the time and the date is stored in special system
  35405. variables called Style$TimeFormat and Style$DateFormat. These variables
  35406. are not mentioned in the printed manual and are given wrongly in the
  35407. early versions of the on-line help as Impression$TimeFormat and
  35408. Impression$DateFormat. If the user does not set these variables, the
  35409. !Run file sets them automatically.
  35410. 7.6
  35411. To set the variables, find your RISC OS 3 User Guide and find the
  35412. section on System Variables. This gives a table explaining (not very
  35413. well!) how to set the time and date variables. There isn’t space here
  35414. for a tutorial but the Impression Style defaults are written
  35415. %z12:%mi:%se %pm for the time which appears as ‘7:27:07 am’ and for the
  35416. date, %zdy%st %mo %ce%yr which appears as ‘25th January 1994’.
  35417. 7.6
  35418. You can reset the two system variables temporarily as follows: press
  35419. <f12> and type, for example, Set Style$TimeFormat %z24:%mi then press
  35420. <return> twice to return you to the desktop. Now insert the time in an
  35421. Impression Style document and you should get the current time in the
  35422. format ‘7:30’ instead of ‘7:30:01 am’.
  35423. 7.6
  35424. The “time” doesn’t have to be confined to the time − you can add the
  35425. date to the time format just as you can add the time to the date format.
  35426. So you could use the “time” and the “date” as two different versions of
  35427. the date.
  35428. 7.6
  35429. When writing letters I like <ctrl-shift-D> to give me ‘25th January
  35430. 1994’ but when I am writing notes from the telephone, which I do a lot,
  35431. I like to date and time stamp them so I prefer ‘7:36 Tue 25 Jan 94’.
  35432. This means that you can have a keyboard shortcut for entering the time
  35433. combined with, or instead of, the date.
  35434. 7.6
  35435. To do this, you just need two Obey files. Load !Edit from the Apps icon.
  35436. From the Edit menu, choose Misc−>Set Type and then delete the offered
  35437. Text and enter Obey and press <return>. Into the edit window type:
  35438. 7.6
  35439. Set Style$DateFormat “%z24:%mi %W3 %zdy %m3 %yr ”
  35440. 7.6
  35441. Press <return> and save the file to disc calling it DateTime. After you
  35442. have double-clicked on this file icon, you should see the current time
  35443. and date in the format ‘7:36 Tue 25 Jan 94’.
  35444. 7.6
  35445. You now need another similar file to restore the default. Create another
  35446. Obey file in Edit and this time it should say simply:
  35447. 7.6
  35448. Set Style$DateFormat “”
  35449. 7.6
  35450. When Impression Style sees that the variable is set to null, it uses the
  35451. format in the !Run file. Save this file, preferably as something
  35452. meaningful like DateDeflt.
  35453. 7.6
  35454. Now store the two files on your Pinboard so that you can double-click on
  35455. whichever format you want.
  35456. 7.6
  35457. If you want to change the format automatically, as Style loads on start-
  35458. up, put a line in your !Boot file, after Style is loaded, to set the
  35459. system variables mentioned above. If you want to change the default
  35460. format permanently, you can amend the !Run file in Style though this is
  35461. not normally recommended and you should always keep a backup copy of the
  35462. original !Run file. If you don’t know where to find the !Run file, or
  35463. how to alter it, it’s probably best not to do it!  Paul Lewis, London
  35464. W3.
  35465. 7.6
  35466. •  Style − Saving files as documents − Impression Style allows files to
  35467. be saved as documents rather than directories. The advantage is that a
  35468. document takes up far less space than a directory. If you store files
  35469. compressed, perhaps as a backup, a file can be compressed much more
  35470. efficiently than a directory.
  35471. 7.6
  35472. There is no utility to go through your entire hard disc to convert all
  35473. those space-hungry directories into files, but you can convert them as
  35474. you use each directory quite simply. Load a number of the old-type
  35475. Impression documents − Style will warn you that the document is in an
  35476. old format and may warn you about things it can’t convert or find.
  35477. Remember that instead of clicking on OK to these warnings, you can just
  35478. press <return>.
  35479. 7.6
  35480. You can load up to sixteen documents, memory permitting. Click in the
  35481. top document and press <ctrl-shift-Y>. That toggles the file save
  35482. routine to save the document as a file rather than as a directory. Press
  35483. <f3> then <return> to save it. Although its name still begins with a
  35484. ‘!’, it is now a file and not a directory and will have the Style icon
  35485. instead of the old ‘I’ icon.
  35486. 7.6
  35487. Now press <ctrl-f2> to remove the document from memory and then go
  35488. through the stack of documents in the same way. It’s not automatic but
  35489. it is quite quick. How much you save will depend on your disc filing
  35490. system but I saved about 14Kb per document. Documents can be stored as
  35491. files but long documents might be best left in the old format,
  35492. especially ones that are so long that you have to load and edit chapters
  35493. separately to fit them in memory.
  35494. 7.6
  35495. If you have a backup of your hard disc (and if you don’t, start one
  35496. now!) you may find that RISC OS will not overwrite a directory with a
  35497. document of the same name. The answer is to alter a system variable
  35498. called Copy$Options. To do that, press <f12> and enter Set Copy$Options
  35499. F then press <return> twice. That should force RISC OS to overwrite the
  35500. directory with a file when you backup. There is more on these options
  35501. for copying in the User Manual under *Copy.  Paul Lewis, London W3.
  35502. 7.6
  35503. •  Tables (again) − I often have to make up tables and have always been
  35504. frustrated by the fact that wordprocessors work essentially in lines
  35505. while data for tables usually comes in the form of columns. It would be
  35506. great to be able to pour the data into the WP side by side.
  35507. 7.6
  35508. The only way around it that I have found within Impression is to
  35509. generate sufficient side by side columns. If you want a master page to
  35510. do this, make one with the requisite number of columns and then unlink
  35511. them by cutting and pasting them back with the same co-ordinates and
  35512. dimensions.
  35513. 7.6
  35514. An easier way, particularly for numerical tables but also for text, is
  35515. to assemble the tables in a spreadsheet which will accept column data
  35516. and then transfer the finished arrangement back to the WP in the form of
  35517. a CSV file of the block of data.
  35518. 7.6
  35519. I use Schema which is particularly amenable in that CSV files of data
  35520. can be input just by dragging them onto a marker and columns (data
  35521. separated by returns) will load as columns. It is not necessary to do
  35522. any more than ensure that the sheet is large enough to take the longest
  35523. line/column. If the basic CSV input filter is set on Impression, all the
  35524. commas will be converted to tabs and you get an instant table by
  35525. applying a suitable table style. The input filter, CSV+, in the Business
  35526. Supplement will automatically generate tables for the non-table literate
  35527. − in a somewhat complicated way!  Bob de Vekey, Watford. 
  35528. 7.6
  35529. •  Time errors (continued) − Further to Matthew Hunter’s item on time
  35530. errors (7.4 p51), the situation is actually significantly more complex
  35531. than described. The CLib time commands will not give the correct answer
  35532. if the cumulative effect of TimeZone and DST (e.g. BST) is negative.
  35533. Setting TimeZone to zero is not going to be a valid solution if you
  35534. don’t live in the UK.
  35535. 7.6
  35536. I encountered this problem some time ago during the development of
  35537. ArcTrack. The problem is particularly acute in this case since the
  35538. program needs to know both UTC (for the orbital mathematics) and Local
  35539. Time (to display to the user). I will attempt below to describe the
  35540. solution which I developed. It may not be the simplest general solution
  35541. but it solved my particular problem.
  35542. 7.6
  35543. This first code fragment determines the difference between local time
  35544. and UTC in seconds. It will be necessary to make a new copy of swi.h for
  35545. RISC OS 3 if this has not already been done. The SWI_List program
  35546. provided with the compiler will achieve this.
  35547. 7.6
  35548. #include “os.h”
  35549. 7.6
  35550. #include “swi.h”
  35551. 7.6
  35552. int utc_offset ()
  35553. 7.6
  35554. {temp ;
  35555. 7.6
  35556.   os_swi2r (Territory_ReadCurrentTimeZone, 0, 0, (int*) NULL, &temp);
  35557. 7.6
  35558.   return temp / 100; /* Output of SWI is in centiseconds */
  35559. 7.6
  35560. }
  35561. 7.6
  35562. The secret of extracting the correct current value of UTC time is to use
  35563. os_word 14, thus:
  35564. 7.6
  35565. #include “os.h”
  35566. 7.6
  35567. double utc_time () /* Would be significantly simpler if long ints were
  35568. 64 bits */
  35569. 7.6
  35570. {{ unsigned int a, b; }
  35571. 7.6
  35572.   double un_int = 4294967295.0;
  35573. 7.6
  35574.   struct five_byte now = {3 , 0};
  35575. 7.6
  35576.   os_word (14, (void*) &now);  /* Determine current UTC time */
  35577. 7.6
  35578.   return((double) temp.a + (double) temp.b * un_int) /100.0;
  35579. 7.6
  35580. }
  35581. 7.6
  35582. The value returned is the number of seconds since 1st January 1900. Of
  35583. course, this is not the same as the time_t values returned by the CLib
  35584. ‘time’ function. To convert to time_t values, you could assume
  35585. (correctly) that they are unsigned integers representing the number of
  35586. seconds since 1st January 1970. Just remember that, under ANSI C, this
  35587. simple representation is not guaranteed and Acorn are perfectly entitled
  35588. to change it in future compiler releases.  R C Simpson,  Farnborough.
  35589. 7.6
  35590. •  Writing extensions to PC Discs − Some people have had difficulty
  35591. writing to PC discs and giving a file an appropriate extension that a PC
  35592. will be able to read − the infamous README.TXT file, for example.
  35593. RISC OS 3 gives desktop access to DOS discs but it makes the discs
  35594. appear as a standard RISC OS disc. The only way to tell that it is
  35595. different is to check the size using free or current format from the
  35596. floppy disc iconbar menu.
  35597. 7.6
  35598. The problem arises due to the different way in which RISC OS and DOS use
  35599. directory specifiers. DOS uses the ‘/’ character to specify a
  35600. subdirectory whereas RISC OS uses the full stop. The DOS path “SOME/DIR/
  35601. STRUCT” would be “SOME.DIR.STRUCT” within RISC OS . Therefore, if you
  35602. try to write the file README.TXT to a RISC OS disc, what you are
  35603. actually trying to do is save the file TXT into a directory called
  35604. README − which probably does not exist.
  35605. 7.6
  35606. To write a file with an extension, use the ‘/’ character, e.g. README/
  35607. TXT. This can be a little confusing because, if you write the file to an
  35608. Acorn formatted disc, the ‘/’ character will be part of the filename but
  35609. if you write to a DOS disc, the file will be saved as ‘README’ with an
  35610. extension of TXT. The screenshot below shows the RISC OS directory
  35611. display and the PC Emulator directory showing that the file does appear
  35612. with an extension.
  35613. 7.6
  35614. Many save boxes will only allow you to use names of up to 10 characters
  35615. − this therefore limits you to a six character filename (with a four
  35616. character extension “/XXX”). However, the DOS filer within RISC OS will
  35617. allow you to rename a file to eight characters, giving a total of
  35618. twelve.
  35619. 7.6
  35620. It should also be noted that if you copy a file from a DOS disc to a
  35621. RISC OS disc and back again, the extension may change. This is again due
  35622. to the name length restrictions. README2.TXT would be copied as README2/
  35623. TX for RISC OS . When copied back to DOS, the file would therefore be
  35624. README2.TX.  Matthew Hunter, NCS.  A
  35625. 7.6
  35626.  
  35627. •  A4 battery pack − There may be people who are worried about the idea
  35628. suggested in Hints and Tips last month, p35, of allowing the battery
  35629. pack of an A4 laptop to be run completely flat. Let me reassure you − I
  35630. used to race radio-controlled model cars which were powered by the same
  35631. type of Nickel Cadmium battery and serious model car racers always store
  35632. the battery packs completely flat, for weeks on end, precisely to avoid
  35633. the ‘memory effect’ mentioned. There is nothing worse than the car
  35634. running out of juice on the last lap − especially when you are in the
  35635. lead! The only point to mention is that the discharging should be done
  35636. as slowly as possible for the best results.  Paul Hobbs, Germany.
  35637. 7.7
  35638. •  A-Link disconnection − The A-Link cable can be disconnected from the
  35639. Pocket Book (or Psion 3)  without powering down. However, the computer
  35640. end must never be disconnected while the computer is on because the
  35641. serial port is quite sensitive. NCS.
  35642. 7.7
  35643. •  A-Link/Psion 3a compatibility − Acorn confirm that for the majority
  35644. of uses, A-Link will transfer files between a RISC OS system and a Psion
  35645. 3a. One area where compatibility is not assured is with some formulae
  35646. when transferring a spreadsheet file converted from 3a format to CSV.
  35647. NCS.
  35648. 7.7
  35649. •  CC Turbo Driver and a printer switch − The Computer Concepts Turbo
  35650. Driver which I bought to go with the Stylus, achieves its protection by
  35651. “scrambling” the output to the parallel port, and unscrambling it with a
  35652. special cable. I was afraid that I would not be able to use my printer
  35653. switch to flip between the Stylus, driven by the Turbo, and my old
  35654. (cheaper-to-run) LQ850, driven conventionally. Happily, it seems that
  35655. the Turbo Driver, once it is installed, even though it may not be
  35656. active, scrambles everything that goes through the parallel port. So,
  35657. providing that the “unscrambling” cable is between the Archimedes and
  35658. the printer switch, all is well.  Bill Mapleson, Cardiff.
  35659. 7.7
  35660. •  CC’s RISC OS 3 printer drivers − For ages, I had problems with CC’s
  35661. RISC OS 3 printers drivers for Laser Direct (at work) and the BJ10
  35662. TurboDriver (at home). They both complained that they didn’t like one of
  35663. my fonts (Freestyle that I use for my “signature”) and suggested I
  35664. switched “Quick Text off”. Unfortunately, unlike the RISC OS 2 drivers,
  35665. neither of these printer drivers has any configuration that is anything
  35666. to do with “Quick Text”.
  35667. 7.7
  35668. CC themselves couldn’t tell me what the problem was or why it gave the
  35669. error or what I could do about it! Dave McCartney of DataFile came to
  35670. the rescue. (Thanks, Dave.) All you have to do is switch “Halftone” to
  35671. “Graphics only”. This is done by going through Printer Control, through
  35672. Printers Configure and then the Halftone Set. option. If you want to
  35673. continue to avoid halftones on text, remember to Save Choices.  Ed.
  35674. 7.7
  35675. •  Epson Stylus and RISC OS 2 − I recently bought an Epson Stylus 1000,
  35676. a superb printer, able to take A3 paper “broadside”, but I found that I
  35677. could not get it to work properly under RISC OS 2. The problem was
  35678. solved once I had installed RISC OS 3.1. If anyone desperately wants to
  35679. make a Stylus work under OS 2, I can supply a work-around for printing
  35680. in text mode, but not in graphics mode. I imagine that the same would
  35681. apply equally to the (A4) Stylus 800, and there is some evidence that it
  35682. might not work under OS 3.0.
  35683. 7.7
  35684. First thing after switching on the Stylus, send a non-printing character
  35685. to the printer by going to the command line (f12) and pressing <ctrl-B>,
  35686. <ctrl-L> and <ctrl-C> (and <return> to get back to the desktop). Then
  35687. all will be well for text printing except that I suspect things might
  35688. hang before the end of a very long file − more than 32Kb or 64Kb. I say
  35689. this because, in graphics mode, it hangs after about 32Kb, and in Hex
  35690. Dump mode, it hangs after printing exactly 64K ASCII codes. (64Kb is the
  35691. default size of the input buffer of the Stylus.)
  35692. 7.7
  35693. The logic behind this is that the Stylus seems to need a pause between
  35694. the first and second character that it receives. Thus, immediately after
  35695. switching the printer on, typing at the command prompt (after hitting
  35696. <ctrl-B>) sends everything perfectly to the printer − although it will
  35697. wait until it has a few dozen characters before it will deign to
  35698. disgorge any from its buffer. On the other hand, if you program a
  35699. function key with a string of characters, switch on the printer, press
  35700. <ctrl-B>, and hit the function key (so that there are microseconds
  35701. rather than milliseconds between the characters) this will block the
  35702. connection: if the string is sent repeatedly, the Archimedes will
  35703. eventually lock, presumably with its output buffer full. If you then
  35704. press <escape> to clear the buffer, and start hitting the function key
  35705. again, all will be well. However, if the first character of the string
  35706. was different from the second, you will see that the first character is
  35707. printed twice so that the printer received the one character but then
  35708. refused to accept any more. Alternatively, if you send a file to the
  35709. printer (first thing after switching on) the printer and Archimedes will
  35710. lock. If you then abort the print on the Archimedes, and re-print, all
  35711. will be well − but with the first character of the file appearing twice.
  35712. 7.7
  35713. Why all this should be so, and why Risc OS 3.1 should solve the problem
  35714. is a mystery; but I suspect that Acorn are aware of it because, in the
  35715. ReadMe file in “Printers.Canon” on the RISC OS 3.1 App2 disc, there is a
  35716. mention that, under Risc OS 3.00 or earlier, the Canon BJC-800 printer
  35717. will not print anything larger than about 7K “(the size of the buffer in
  35718. the BJC-800 printer)”.  Bill Mapleson, Cardiff.
  35719. 7.7
  35720. •  Equasor − One of our customers recently experienced strange problems
  35721. using Equasor. The crosshairs that are used to place the caret when ‘New
  35722. Equation’ is selected from the Edit submenu simply locked when select
  35723. was clicked rather than disappearing to leave the caret. Equasor
  35724. continued to run and the crosshairs were erased when anything was
  35725. redrawn over the equasor window. It was impossible to create an
  35726. expression.
  35727. 7.7
  35728. The problem was due to the configuration options for WimpDragDelay and
  35729. WimpDragMove both being set to zero. Presumably Equasor saw the mouse-
  35730. click event as a drag rather than a click and did not know how to
  35731. behave. With these set to the default values (5 and 32 respectively) or
  35732. any other non-zero values, the caret appeared as expected.  NCS
  35733. 7.7
  35734. •  Impression date format − The hint last month (p37) about date and
  35735. time formats for Impression Style actually applies to Impression II as
  35736. well. Simply use Impression$DateFormat and Impression$ TimeFormat. 
  35737. Colin Singleton, Sheffield.
  35738. 7.7
  35739. •  Incorporating formulae into Impression text − For quite some time, I
  35740. have been miffed at the trouble I had fitting formulae (both Equasor and
  35741. BestForm) into my mathematical texts. Only the intensive work needed to
  35742. get thoroughly acquainted with the new Impression Style caused me to sit
  35743. down and think about formulae. (Shame on me − such a lot of time
  35744. wasted!)
  35745. 7.7
  35746. As there may be one or two amongst you with the same problems, so here
  35747. is what I found out:
  35748. 7.7
  35749. a) Size… − I used to have to scale the view to something like 400%, then
  35750. change the size of the characters inside the Equasor window by adjust-
  35751. dragging, until it equalled that of the main text.
  35752. 7.7
  35753. What I should have done is this: Either use the same font size in
  35754. Equasor as in Impression, then make sure that the graphic frame is at
  35755. 100% (this can be checked by double-clicking somewhere in the frame,
  35756. thus opening the “Alter Graphics” dialogue box) or, if the Equasor
  35757. setting is larger, scale the graphics down numerically, again with the
  35758. help of the dialogue box.
  35759. 7.7
  35760. b) Position… − If you embed a small frame containing a formula into the
  35761. text with <ctrl-shift-F>, the text inside the frame will sit above the
  35762. line, because the alignment takes place between the bottom of the frame
  35763. and the line. Therefore I used to place formulae on the page manually,
  35764. which meant that every change to the text above the frame made a new
  35765. positioning necessary.
  35766. 7.7
  35767. Here is what I should have done: Embed the frame, put the caret just to
  35768. the left of it, then use the manual kerning facility to shift the frame
  35769. down with repeated presses of <ctrl-J>. Then all that’s left to do is
  35770. put the caret to the right of the frame and press <ctrl-U> the same
  35771. number of times to bring the rest of the line back up.  Jochen
  35772. Konietzko, Köln, Germany
  35773. 7.7
  35774. •  Inspiration on RISC OS 3 − I have found out how to get the MIDI
  35775. sequencer ‘Inspiration’ to work with RISC OS 3.10. Basically, all you do
  35776. is to load both of the template files into a template editor and ensure
  35777. that the ‘Sprite’ option is switched off for all icons. This results in
  35778. a lot of blank icons in the templates, but at least it doesn’t give
  35779. address exceptions whenever you click anything. The writers of the
  35780. program abandoned the project some years ago and the company marketing
  35781. it have ceased trading, so for the moment this is the only fix, unless
  35782. anyone else has found a better way!  Richard Millican, Manchester.
  35783. 7.7
  35784. •  Keystroke − (Here is Ed’s monthly crop of keystroking!) If you have
  35785. to add and subtract as many commas as I do, you will appreciate the
  35786. following ideas that I have used. At first, I used <ctrl-alt-,> to add a
  35787. comma at the end of a word. It was just a case of clicking anywhere in
  35788. the word to be comma’d and the key inserted the text “\S-⇨\\⇦⇦⇦⇦\,” which
  35789. worked except where the word to be comma’d was at the RH end of a line
  35790. of text − because it has to go past the linefeed as well as the space.
  35791. Instead, I now use “\S-⇨\\⇦⇦⇦⇦\|?, ” as my text string (note the space after
  35792. the comma). In other words, instead of moving back one space from the
  35793. beginning of the following word before adding the comma, it deletes the
  35794. space between the two words and adds comma and space.
  35795. 7.7
  35796. The other change I made to my comma’ing function was to move it from
  35797. <ctrl-alt-,> to <ctrl-alt-A>. This means that my right hand doesn’t have
  35798. to leave the mouse to hit <,> while the left hand holds <ctrl-alt>.
  35799. Instead, I can add the comma entirely with my left hand and I can
  35800. continue to look at the text rather than looking down to locate the
  35801. comma key. (Similarly, I remove a character from the end of a word now
  35802. by using <ctrl-alt-Z> (left hand only) which inserts the text “\S-
  35803. ⇨\|?|? ”.)
  35804. 7.7
  35805. Other keys I now use include: <ctrl-alt-S> which capitalises (or
  35806. uncapitalises) the next word. It consists of “\S-⇨\|S”. The point about
  35807. it is that it can auto-repeat and capitalise a whole line of words.
  35808. 7.7
  35809. My invert words keystring has now changed to “|D\S-⇨\|V\S-⇦\\S-⇦\”. If you
  35810. compare with the hint last month, all I have done is to add a “move left
  35811. two words” at the end. This means that the cursor is brought back to the
  35812. beginning of the first of the two words inverted. The reason I do this
  35813. is that if I invert two words by mistake, I can immediately see which
  35814. two words have to be re-inverted to restore things.
  35815. 7.7
  35816. •  Keystroke again − Just to show what you can do with Keystroke, I have
  35817. a key which does the following: load my Impression “envelope” file,
  35818. adjust the window so that a frame embedded within the file is in the
  35819. centre of the screen, load my standard “letter” file, adjust the size
  35820. and position, insert the date and move the cursor to the position where
  35821. I want to enter the address. I then type in the address and press
  35822. another key which copies the address, brings the envelope file to the
  35823. front, types in the address and prints the envelope. For people I write
  35824. to regularly, I can incorporate the address in the first Keystroke
  35825. sequence so that the whole thing is done with a single keystroke.  Peter
  35826. Howard, Fleet.
  35827. 7.7
  35828. •  Print margins on HP DeskJet 500 − I use a monochrome DeskJet 500
  35829. printer and I have found that the actual print margins are different
  35830. from the “Generic DeskJet” settings as supplied with the RISC OS 3
  35831. printer drivers. And their A4 margins are different from their Legal and
  35832. Letter ones! The latter are, in fact, close to reality. The Legal and
  35833. Letter (Generic DeskJet) settings give the top and bottom margins as 5.1
  35834. and 20.1 cm respectively, while the A4 (Generic DeskJet) setting gives
  35835. 12.5 and 19.9cm. I use the DeskJet+ driver with the colour options
  35836. turned off and my settings are 5.1cm for the top and 12.0 for the bottom
  35837. margin. The left and right margins, although differing slightly, I leave
  35838. as they are, as I (and most people, I think) usually set wider side
  35839. margins anyway. I leave the Paper Offsets at the supplied DeskJet (and/
  35840. or DeskJet+) setting i.e. 4.23 for X and 0.00 for Y.  Rex Palmer,
  35841. Middlesex.  A
  35842.  
  35843. •  WordWorks problems − In reply to Dave Floyd’s WordWorks problems
  35844. (Archive 7.8 p43) one of our subscribers (I didn’t catch the name,
  35845. sorry) called in with a solution that works for him. Once you have
  35846. deleted the choices file and got the configurations back as you want
  35847. them, quit WordWorks and then load the choices file into Edit. Find the
  35848. line that starts NewView followed by some coordinates and comment it out
  35849. by placing a colon at the start of the line. Save the file back and all
  35850. should be well.  Dave Webb, NCS.
  35851. 7.8
  35852. •  CC Turbo drivers − It has been stated in the past that to print from
  35853. Basic (or similar), you need to load the Turbo Driver before it will
  35854. work. This is not, in fact, the case. After installation, the !Printers
  35855. directory will contain a directory called td, which is where the Turbo
  35856. Driver resources are kept. In the subdirectory Resources.Modules is a
  35857. relocatable module ‘turbo’ which is all that is required to enable
  35858. printing from Basic. If you frequently wish to print in this way, it may
  35859. be beneficial to load the module as part of your boot sequence. G.
  35860. Smith, London.
  35861. 7.8
  35862. •  Conditional Basic − Following hours of head-scratching and computer-
  35863. bashing, wondering why an “IF...THEN...ELSE...ENDIF” did not work as it
  35864. should, I made the following discovery. The problem occurs if you are
  35865. using !StrongEd when after the THEN, for whatever reason, there is a
  35866. space which you cannot see. (It is possible to make it visible in
  35867. !StrongEd since you can set the window and text background colours
  35868. independently, e.g. two different shades of grey. MH) In my case, it was
  35869. left there after splitting the line. The program then seems to ignore
  35870. the THEN and just continues its flow, and of course, if the condition
  35871. has not been satisfied, the wrong result is achieved. If you delete the
  35872. unseen space or spaces it works correctly. The same does not occur with
  35873. !Edit. How about other editors?  John Charman, Norfolk.
  35874. 7.8
  35875. (I have tried this with the public domain editor, !Zap. If you edit in
  35876. BASTXT mode, the spaces are saved, but the program functions correctly.
  35877. If you edit in Basic mode, trailing spaces are removed. Is there a
  35878. difference if you run the program from within !StrongEd, rather than
  35879. saving the file and running it normally? MH)
  35880. 7.8
  35881. •  Deskjet printing − Examining the printer graphics output for the
  35882. Deskjet from the Acorn Printer driver, I see that graphics output ends
  35883. with the code <esc>*rB. This was the accepted code until the DJ500 but,
  35884. thereafter, <esc>*rC is required. The latter is recommended to cover
  35885. both cases. In the !Paint code, it is immediately followed by <esc>E to
  35886. reinitialise the printer, so it would probably work OK but, in other
  35887. contexts, it could have undefined results. John Laski, London SW1.
  35888. 7.8
  35889. •  Epson Stylus and Turbo Driver − If you are having problems with
  35890. spurious formfeeds being sent out to the Epson Stylus printer from the
  35891. CC Turbo Driver, don’t despair. It is a known problem and Computer
  35892. Concepts have a fixed version of the Turbo Driver. Contact them for more
  35893. details.  Michael Pullin, Cheltenham.
  35894. 7.8
  35895. •  Ink Refills for Canon BJC-600 − The Canon Inkjet Colour Printer BJC-
  35896. 600 is highly regarded as a suitable colour printer for Acorn 32-bit
  35897. (Archimedes) computers. It produces prints with 360 dpi resolution and
  35898. near-photographic quality in colour of an excellence previously
  35899. obtainable only with much more expensive printers. The method of
  35900. printing is to eject coloured inks in very small droplets from separate
  35901. reservoirs of ink of four colours (yellow, cyan, magenta and black)
  35902. through holes of microscopic size in a print-head which is traversed
  35903. laterally as the paper is advanced beneath it.
  35904. 7.8
  35905. In the Canon BJC-600, the print-head is retained in the machine and only
  35906. requires renewal at long intervals. The four inks are contained in
  35907. liquid form in separate plastic cartridges which are conveniently
  35908. transparent to show the quantity of ink remaining. These four cartridges
  35909. plug into the print head and can be removed and replaced individually.
  35910. Each cartridge is sealed except for one hole which feeds ink to the
  35911. print head (the ink exit hole). A spongy material which is located
  35912. within the cartridge absorbs some of the ink and prevents it flowing too
  35913. freely from the cartridge.
  35914. 7.8
  35915. Ink refill kits have become available to save on the cost of new
  35916. cartridges. It is particularly important, if refilling is contemplated,
  35917. that only inks of the special types used in inkjet printers should be
  35918. employed.
  35919. 7.8
  35920. In my experience, it is not satisfactory to attempt to inject new ink
  35921. through the ink exit hole: Filling in that fashion can only be done
  35922. slowly as air must exit at the same time by the same hole. Furthermore,
  35923. there is a risk of disturbing the spongy material within the cartridge
  35924. at the critical position in the vicinity of the hole. So, my solution
  35925. has been to drill another hole in the cartridge for filling with ink.
  35926. Although this and the subsequent operations which I shall describe are
  35927. simple in nature, they require some dexterity. If you wish to experiment
  35928. at your own risk, proceed as follows:
  35929. 7.8
  35930. To modify the cartridge, peel back the coloured adhesive label to expose
  35931. the top of the cartridge. Drill a small hole in the centre of the round
  35932. moulding depression on the top of the cartridge (see diagram opposite).
  35933. I shall call this the filling hole.
  35934. 7.8
  35935. Take a piece of adhesive tape of about ¾“ square − the common brown
  35936. adhesive packaging tape is ideal as it adheres strongly to the material
  35937. of the cartridge. Place this tape to cover the filling hole which you
  35938. have drilled and bend the tape to extend it over the side of the
  35939. cartridge. This extension will facilitate its removal later. Finally,
  35940. smooth back the coloured label to its normal position at the top of the
  35941. cartridge. This completes the modification of the cartridge.
  35942. 7.8
  35943. Filling a modified cartridge.
  35944. 7.8
  35945. (a) My experience in refilling cartridges is limited to the use of ink
  35946. obtained from System Insight of Welwyn Garden City which I have found to
  35947. be satisfactory. The ink is supplied in plastic squeeze bottles which
  35948. are very convenient − specify that ink is required for the BJC-600 and
  35949. the bottles will be fitted with long straight hollow needles (or probes)
  35950. somewhat like a hypodermic syringe. Ink of all four colours will be
  35951. required.
  35952. 7.8
  35953. (b) Seal off temporarily the ink exit hole in the cartridge with tape.
  35954. This requires care as the exit hole is near a corner of the cartridge. A
  35955. clamp against a soft rubber washer as a seal is a better solution.
  35956. 7.8
  35957. (c) Peel back the coloured label at the top of an empty cartridge to
  35958. expose the brown tape and remove this brown tape to expose the filling
  35959. hole. Insert the probe of a squeeze bottle containing ink of the correct
  35960. colour (check the colour of the cartridge label carefully) and fill the
  35961. cartridge with ink. Do not overfill but move the cartridge as necessary
  35962. to ensure that air is not trapped.
  35963. 7.8
  35964. (d) Seal the filling hole again with a fresh piece of brown adhesive
  35965. tape. Smooth back the coloured label over the top of the cartridge.
  35966. Remove the tape (or other seal) which was placed temporarily over the
  35967. ink exit hole.
  35968. 7.8
  35969. (e) Place the cartridges vertically on a flat surface (in the stance
  35970. they would normally occupy when in the printer) and leave them overnight
  35971. to stabilize. There should be no leakage.
  35972. 7.8
  35973. (f) Place the newly filled cartridges in the printer and perform the
  35974. four-colour cleaning operation which would normally be carried out with
  35975. new cartridges.
  35976. 7.8
  35977. You should note that you will be unlikely to complete these filling
  35978. operations without spilling some ink especially until experience is
  35979. gained. So take care to undertake filling where spilled ink is of no
  35980. consequence. Toilet tissue is the best material for mopping up surplus
  35981. ink. A small quantity of ink on the hands is of little consequence as it
  35982. soon disappears with normal washing.
  35983. 7.8
  35984. The amount of money to be saved by refilling cartridges is worth the
  35985. effort if the printer is used extensively. On the other hand, success
  35986. will depend considerably on your manipulative skill − you may consider
  35987. it preferable to employ only new cartridges as supplied by Canon. 
  35988. George Foot, Oxted.
  35989. 7.8
  35990. •  Laser Direct and RISC OS 3 − Having recently upgraded to the RISC OS
  35991. 3 version of the Laser Direct printer driver (v2.61), I’ve hit a couple
  35992. of snags when using a Canon LBP-4 printer fitted with a paper cassette.
  35993. Thinking these were new bugs, I reported them to Computer Concepts but
  35994. have been advised that they are ‘features’ of the (RISC OS 3) model.
  35995. 7.8
  35996. In neither case do the problems stop successful printing but they do
  35997. need to be taken into account, thus making the system not quite so user-
  35998. friendly.
  35999. 7.8
  36000. When the driver is first loaded and the paper cassette is selected, the
  36001. printer Alarm LED now remains on and the Status window shows ‘No paper
  36002. in multi-purpose tray’. This is not normally a problem as, once the
  36003. first page of a document has been assembled, the Ready LED comes on and
  36004. the printer fires up (thereafter, the Ready LED remains on). However,
  36005. where an application allows individual pages to be selected, e.g.
  36006. Pipedream’s ‘Wait between pages’ option, the printer may not fire up
  36007. until the final page of the document has been accepted or rejected. With
  36008. a large document, many minutes can be lost.
  36009. 7.8
  36010. There are two work-around solutions; put a sheet of paper in the multi-
  36011. purpose tray or first print another full document. Either action will
  36012. bring on the Ready LED and allow printing to start as soon as the first
  36013. selected page has been assembled.
  36014. 7.8
  36015. Secondly, when you use the ‘Print to file’ option, the paper feed
  36016. selected at the time is now saved with the file and, on printing, will
  36017. override any other setting. So, when printing to file, you must decide
  36018. where you want the paper to come from when the file is finally printed,
  36019. and pre-select Cassette or Multi-Purpose before printing to file.  Jim
  36020. Nottingham, York.
  36021. 7.8
  36022. •  PipeDream to Impression − In Archive 7.7 p56, Paul mentioned getting
  36023. files from Pipedream to Impression via DeskEdit. If you have PipeDream4,
  36024. there is an option “Paragraph” on the save window. If you click that,
  36025. you can drop the text straight from PipeDream into Impression.  Michael
  36026. Wright, Teignmouth.
  36027. 7.8
  36028. •  Quieter fans? − David Lenthall (Archive 7.6 p23) asked for a supply
  36029. of quiet Papst fans. You could try a company called Papst Direct,
  36030. Andover, Hants, SP10 3RT (0264-335714) (0264-332182) who advertised in
  36031. Computer Shopper some while back. Their Variofan will “run as fast as
  36032. your PC needs”. I haven’t tried them myself so if anyone does, perhaps
  36033. they would report back so we can all benefit. Thanks.  David White,
  36034. Cambridge.
  36035. 7.8
  36036. •  Rodent sunglasses? − As a person of the bearded persuasion (those who
  36037. met Dave at Acorn World or the NCS Open Day can confirm that!) who
  36038. sometimes eats digestive biscuits whilst working at my Archimedes, my
  36039. keyboard and mouse mat often suffer a shower of crumbs and small hairs
  36040. as I scratch my chin. This requires frequent removal and cleaning of the
  36041. rubber ball in the mouse.
  36042. 7.8
  36043. I have become accustomed to this so the other day, when the mouse
  36044. pointer started moving in jerks I removed the ball and cleaned it. No
  36045. improvement. I tried again, this time cleaning the little rollers with a
  36046. cotton bud as well. Still it wouldn’t work properly. I washed the mouse
  36047. mat but again, it misbehaved.
  36048. 7.8
  36049. The mouse I normally use was actually taken from an A3020 because I
  36050. prefer it to the one supplied with my A5000, so at this point, I decided
  36051. to try the original mouse and everything worked perfectly.
  36052. 7.8
  36053. A little later, determined not to be beaten, I took the top off the
  36054. mouse to give it a thorough clean. This still produced no improvement. I
  36055. therefore tried using it with the top cover removed in the hope of being
  36056. able to see what was going wrong. All the little rollers appeared to be
  36057. turning, but the mouse pointer wasn’t moving, just vibrating as I moved
  36058. the mouse.
  36059. 7.8
  36060. The mouse uses an optical sensor with a slotted disc and, with the top
  36061. removed, there was too much light for this to function whereas shielding
  36062. the works with my hand made it function correctly.
  36063. 7.8
  36064. Suddenly the penny dropped! I refitted the cover, placed my hand
  36065. completely over the mouse (instead of just moving it held between thumb
  36066. and little finger as usual) and it worked. The trouble was that I work
  36067. with my desk in a bay window, and it was the first sunny day of the
  36068. year. The afternoon sun shining through the window was landing on my
  36069. desk just where I had positioned the mouse mat. Enough of this bright
  36070. sunlight was penetrating the casing of the mouse to confuse the optical
  36071. sensor. I had wasted about an hour trying to find a non-existent fault
  36072. when all that was needed was to partially draw the curtains!
  36073. 7.8
  36074. I have now stuck some kitchen foil to the inside of my mouse casing! 
  36075. David Holden, Sydenham.
  36076. 7.8
  36077. •  !Spark(plug) 2.22 − John Laski also writes of !Spark “this
  36078. successfully unzips some files, but not others.” Unfortunately there
  36079. have been later versions of ZIP on the PC than !Spark will currently
  36080. handle. If you have access to the PC Emulator, I would recommend that
  36081. you use the PKUNZIP program within the PC partition. While slower than
  36082. !Spark, it does have the advantage that the decompressed files have the
  36083. correct extensions (which !Spark does not (yet?) offer), and if the
  36084. software is PC anyway, extracting it via !Spark to the PC partition and
  36085. then having to rename all the files is more hassle than resorting to
  36086. DOS. If you are sending the files to a Pocket Book (much of the Psion 3
  36087. software is distributed through PC media) then with PocketFS2 you can
  36088. drag a file directly from the PC partition to the PocketFS filer (not
  36089. the translation window), which is another advantage of the PC method.
  36090. Hopefully, future versions of !Spark will support extensions, as well as
  36091. later versions of ZIP files, thus making my PC partition redundant!
  36092. Matthew Hunter, NCS
  36093. 7.8
  36094. •  Taxan 789 problems − I’ve been offered quite a bit of advice on my
  36095. Taxan 789 problem; unfortunately, none of it is definitive and some of
  36096. it is contradictory. However, the general consensus is that the Taxan
  36097. 789 should run OK direct from ‘new’ machines, i.e. A5000 or later. It
  36098. may run off ‘old’ machines, with or without multisync VIDC enhancers,
  36099. but this is unlikely. It probably will run OK with SVGA VIDC enhancers,
  36100. such as the version marketed by Watford Electronics.
  36101. 7.8
  36102. Apparently, the clue is whether the computer/VIDC enhancer produces a
  36103. composite sync or the preferred separate horizontal and vertical syncs.
  36104. This may explain why I had identical problems trying to run it from an
  36105. A410/1, with multisync enhancer, or an A540 with built-in equivalent
  36106. hardware.
  36107. 7.8
  36108. I’m now running the monitor successfully from a State Machine G16 card
  36109. and am extremely impressed with the display quality in the higher-
  36110. resolution modes, which is only marginally down on that of my Eizo
  36111. F550i. While I agree entirely with Stuart Bell’s rationale on 14“ versus
  36112. 17” monitors (Archive 7.4 p31), for someone who cannot justify the
  36113. expense of the latter, a 14“ monitor and colour card (and, in my case, a
  36114. pair of reading glasses...) would make a relatively economical
  36115. compromise.  Jim Nottingham, York.  A
  36116. 7.8
  36117.  
  36118. What has happened to the hints & tips? I guess everyone has been too
  36119. busy reading and talking about the Risc PC. Please send in your tips for
  36120. both machines to maintain this valuable service to other readers. Ed.
  36121. 7.9
  36122. •  TeX − In response to the help plea in Archive 7.6 p31, TeX can be
  36123. made to run by dragging the directory containing the TeX file onto the
  36124. TeX icon by changing one line in !Wimpman.
  36125. 7.9
  36126. Line 860 should be changed from Param$=“<TeX Source>” +
  36127. FNfilename(Param$) to Param$ = FNfilename(Param$)
  36128. 7.9
  36129. This correction comes from Graham Toal, and I have had no problems since
  36130. making the change. Kathy Burrows, Bedford.
  36131. 7.9
  36132.  
  36133. Hints and Tips
  36134. 7.10
  36135. •  Cumana CD-ROM 300 (SLCD), Photo CD. I had problems installing the new
  36136. module on my A5000. I had followed the installation instructions given
  36137. in the help file, putting new lines in the !Boot file but could not
  36138. change the module and kept getting error messages. I contacted Cumana
  36139. who were very helpful. By a process of elimination, we found out that
  36140. the lines added to the !Boot file should be this:-
  36141. 7.10
  36142. RMEnsure SLCD 1.22 RMLoad (Path).SLCD. SLCD1
  36143. 7.10
  36144. RMEnsure SLCD 1.22 error SLCD version 1.22 not found
  36145. 7.10
  36146. where (Path) will be something like
  36147. 7.10
  36148. ADFS::IDEDisc4.$.Cumana
  36149. 7.10
  36150. or whatever the directory is that contains the new module.  Angela
  36151. Bareford, Woking.
  36152. 7.10
  36153. •  IDEFS and RISC OS 3. I recently upgraded my A3000 to ARM3, which
  36154. proved to be a very harrowing experience due to certain... err...
  36155. misunderstandings on the part of Watford Electronics. However, with the
  36156. computer back on my desk, I felt more contented, until I discovered that
  36157. my hard disc drive disagreed with the new processor. So, I contacted
  36158. Risc Developments, who were very helpful, and they sent me a new IDE
  36159. controller ROM. I would recommend that all owners of R.D. internal hard
  36160. disc drives and RISC OS 3 should get this as it interfaces better with
  36161. the new operating system and provides a proper space free window.
  36162. 7.10
  36163. Unfortunately, I can’t do that, as it doesn’t seem to work with my
  36164. system. Everything is fine until it has to cope with a file that is
  36165. about 1Mb long; this can occur when using ArcFS archives which are
  36166. treated as one file or when installing Wordworks − the dictionary file
  36167. is massive! RD are somewhat confused by this as they thought they had
  36168. fixed it, so my faithful little hard drive must be entrusted to Parcel
  36169. Force for the hazardous journey to St. Albans.
  36170. 7.10
  36171. Therefore, I felt I ought to warn Archive readers with a similar
  36172. configuration that archiving and WordWorking can be very bad for your
  36173. general welfare − no-one likes having to wipe everything! The versions
  36174. in question are: IDEFS v:1.27 and IDEFiler v:1.11 on the EPROM v: 1.33A.
  36175. 7.10
  36176. It is, however, nice to see that some companies can be genuinely helpful
  36177. − notably those who do not also deal with PC products ...  Nigel Caplan,
  36178. Leeds.
  36179. 7.10
  36180. •  Indelible files in CFS − Sometimes, in using Computer Concepts’ CFS,
  36181. a file may become corrupted, and end up on the disc as an indelible
  36182. file. No direct * command, such as *WIPE, *REMOVE, or *DELETE has any
  36183. effect. The simple solution is to create another file in Impression or
  36184. Artworks with exactly the same name as the dud file. On attempting to
  36185. save the new file, you meet the familiar CC warning message inviting you
  36186. to delete the old file and save the new one. When you press OK, the dud
  36187. file is replaced by a nice new file which can then be deleted as
  36188. normal.  Gerald Moxon, Leeds.
  36189. 7.10
  36190. •  Inkjet problems on BJ10? − If you find that the ink stops flowing a
  36191. short time after installing a new cartridge, and if the self-clean does
  36192. not work, try removing the cartridge and blowing into the little hole at
  36193. the side of the cartridge. This trick has worked every time I have tried
  36194. it and was taught me by a printer repair engineer.  Clive Bell,
  36195. Stevenage.
  36196. 7.10
  36197. •  Menu Help ...continued. I would like to add a suggestion to the saga
  36198. about getting menu help, first raised by Gwyn Williams (Archive 6.11
  36199. p11), and followed by two articles by Richard Simpson (Archive 6.12 p33
  36200. and 7.8 p42).
  36201. 7.10
  36202. The problem is that the Gwyn Williams’ examples only work for those
  36203. mythical owners of the new RISC_OSlib, and the solutions suggested by
  36204. Richard Simpson cause other problems which he referred to last month.
  36205. 7.10
  36206. Although I also do not own the new RISC_OSlib, I implemented menu help
  36207. using Gwyn Williams’ solution by including my own function for
  36208. wimpt_messages.
  36209. 7.10
  36210. (1) Add the header reference
  36211. 7.10
  36212. #include “swis.h”
  36213. 7.10
  36214. (2) Define a new swi
  36215. 7.10
  36216. #define Wimp_AddMessages 0x400F6
  36217. 7.10
  36218. (3) Include the new wimpt_messages routine
  36219. 7.10
  36220.   static void wimpt_messages (wimp_ msgaction *messages)
  36221. 7.10
  36222.   {r ;
  36223. 7.10
  36224.    r.r[0]=(int)messages;
  36225. 7.10
  36226.    wimpt_complain(os_swix(Wimp_AddMessages, &r));
  36227. 7.10
  36228.   }
  36229. 7.10
  36230. I hope this is useful.  Peter Tuson, Fleet.
  36231. 7.10
  36232. •  Saving the desktop state at shutdown − After playing with !Help and
  36233. Switcher’s save Desktop file, I discovered an icon that was almost
  36234. completely out of view. The icon is at the bottom of the ‘Desktop boot’
  36235. save-window below the ‘Auto boot’ icon. (it can be seen by loading the
  36236. Switcher templates into FormEd, and altering the window size.) It
  36237. transpires that it is possible to make the desktop save the current
  36238. state at shutdown. It all revolves around the alias SaveDesk$File.
  36239. 7.10
  36240. By typing
  36241. 7.10
  36242. *Set SaveDesk$File <filename>
  36243. 7.10
  36244. the current state of the desktop will be saved, as a desktop file called
  36245. <filename>, whenever a Shutdown (Ctrl-Shift-F12) is performed, or ‘Exit
  36246. ’is selected from the Switcher menu.
  36247. 7.10
  36248. I have been unable to find any references to this in the RISC OS 3 User
  36249. Guide, so I would imagine that it is not fully implemented, or not
  36250. recommended by Acorn.  Neil Walker, Wymondham, Norfolk.
  36251. 7.10
  36252. •  Toshiba CD-ROM drives and CDFS − I recently experienced problems in
  36253. connecting a Toshiba 4101 SCSI CD-ROM drive to my system. The problem
  36254. was that the CD-ROM icon would be displayed on the iconbar but clicking
  36255. on it, or trying to play audio discs would cause the error ‘CD-ROM drive
  36256. not found.’
  36257. 7.10
  36258. I found out that the Toshiba EE50X driver provided with CDFS does not
  36259. work with this drive, (nor apparently the 3401). Luckily, Morley
  36260. Electronics sell a new driver for £25 which does work, and so these
  36261. cheap CD-ROM drives will now work with Archimedes computers.
  36262. 7.10
  36263. Apparently, the latest CDFS is v2.21 and hopefully allows drives to be
  36264. set to double speed, and removes the bug where ejecting an audio disc
  36265. kills CDFS.  Richard Burrell, Bristol.
  36266. 7.10
  36267. •  Two dimensional scroll bars − Here’s an interesting ‘feature’ of RISC
  36268. OS 3.11. Load up Edit or Impression with a file that covers more than a
  36269. screenfull. Now go to one of the scroll bars and click on the ‘thumb’
  36270. (the bar) with <adjust>. The pointer will disappear and moving the mouse
  36271. will cause the window to scroll in any direction − up, down, left and
  36272. right! Impression seems to do this better than Edit, but any offers why
  36273. it happens at all?  Nigel Caplan, Leeds.
  36274. 7.10
  36275. This feature is part of the normal Wimp-controlled operation of a
  36276. window. It is particularly useful in graphics programs such as Draw,
  36277. Artworks and bitmap applications with pages much larger than the
  36278. window.  Dave Webb, NCS.  A
  36279. 7.10
  36280.  
  36281. Hints and Tips
  36282. 7.11
  36283. •  Dongled software on the PC card − When running dongle-protected PC
  36284. software on the Aleph One PC card, some problems may be experienced
  36285. where the dongle isn’t seen. This can be cured by a simple hardware
  36286. upgrade to the parallel port. Contact Aleph One for details.  W H
  36287. Bradbury.
  36288. 7.11
  36289. •  ImpChars on the Risc PC − ImpChars, included on Archive program disc
  36290. 7.6, doesn’t work with the Risc PC. The error “Too many nested
  36291. structures” appears. This can be solved by changing the value of the
  36292. WimpSlot in the !Run file eg. from 24 to 45.  Anon.
  36293. 7.11
  36294. •  Maximising memory using Keystoke − I have used Keystroke for a year
  36295. or so and I am now using v2.33. The most commonly used sequence I have
  36296. is on booting up. My !Boot file includes the line
  36297. 7.11
  36298. /ADFS::IDEDisc.$.!Keystroke
  36299. 7.11
  36300. My default Keystrokes file sets up <Alt-Q> to quit those applications
  36301. which have been loaded during the boot sequence and which are no longer
  36302. needed (e.g. the Printer Manager). They are quit either by using the
  36303. quit option from their icons menu on the iconbar or, if that is not
  36304. available, from the quit task option in the Task window by opening the
  36305. window, positioning the pointer over the item and quitting via the menu.
  36306. 7.11
  36307. My !Boot file also contains the lines
  36308. 7.11
  36309. Set $Do0 Alt+Q@Quit Printer Manager
  36310. 7.11
  36311. Set $Do1 Alt+Q@Quit ...
  36312. 7.11
  36313. Set $Do2 Alt+Q@Quit ...
  36314. 7.11
  36315. Set $Do3 Alt+Q@Quit ...
  36316. 7.11
  36317. Set $Do4 Alt+Q@Open Tasks Window
  36318. 7.11
  36319. Set $Do5 Alt+Q@Position Tasks Window
  36320. 7.11
  36321. Set $Do6 Alt+Q@Position Pointer
  36322. 7.11
  36323. Set $Do7 Alt+Q@Quit   (application name)
  36324. 7.11
  36325. Set $Do8 Alt+Q@Close Tasks Window
  36326. 7.11
  36327. which successfully remove those applications and leaves me in the
  36328. desktop with the machine set up with all the applications and modules
  36329. that I like to have loaded, but also with the maximum amount of free
  36330. memory available.  M P Churchill, High Wycombe.  A 
  36331. DTP Hints & Tips
  36332. 7.11
  36333. James Parry
  36334. 7.11
  36335. James Parry, proprietor of Smart DTP, “Specialists in DTP ware for 32-
  36336. bit Acorn machines”, has sent us a whole set of DTP hints and tips. He
  36337. admits he has an ulterior motive of drawing attention to his company’s
  36338. products but the hints are helpful, so here they are.
  36339. 7.11
  36340. •  Getting organised(1) Fonts − There are now several applications on
  36341. the market for managing outline fonts, the leading applications being
  36342. Easyfont II (Fabis) and Font Directory (LOOKsystems). I’ve just received
  36343. Easyfont II, and it’s a lot faster and has many new features. (I’m not
  36344. going start a font management war as I haven’t seen a copy of Font
  36345. Directory yet.)
  36346. 7.11
  36347. If you can spare the cash, you would be well advised to invest in a font
  36348. management system. The application will help you to cope with the
  36349. growing number of fonts being introduced so that you can keep track of
  36350. them and, more importantly, use your collection more effectively. If you
  36351. can fit all your fonts on one font directory on your hard drive then you
  36352. probably don’t need a font management system yet. Before I used
  36353. Easyfont, I organised all my fonts into separate !Font directories such
  36354. as !Fancy, !General, !Script, !Titles, etc. For those who use a floppy
  36355. drive system, you will have to make up different font discs using this
  36356. sort of system.
  36357. 7.11
  36358. •  Getting organised(2) Clipart/Resources − Many people have lots of PD
  36359. and commercial clipart but is your clipart well-organised? Can you find
  36360. that piece of clipart just when you need it? A while ago, I decided I
  36361. would have to get my collection into some sort of order. It took quite a
  36362. while trying different ways of organising my resources before I decided
  36363. on my current system which is quick and easy to use.
  36364. 7.11
  36365. If, as I do, you tend to hoard software and simply can’t bear to delete
  36366. anything, make a backup of your entire collection of clipart. Once this
  36367. is done, you can sift through your collection, pruning as you go, with
  36368. no fear of losing images from your collection altogether.
  36369. 7.11
  36370. If you don’t have a hard drive, your best bet is to sort out your
  36371. clipart by topic onto disc. Each disc should concentrate on a single
  36372. topic. For example, you may have discs dedicated to sport and leisure,
  36373. business, cartoons, etc. If possible, use a compression application to
  36374. maximise space.
  36375. 7.11
  36376. Hard disc users have a better option although they can use the method
  36377. above to keep backups. I store my clipart in an application on the $
  36378. directory called !Clipart. It simply opens a directory, revealing the
  36379. clipart. It’s not exciting and it doesn’t do anything fancy but if you
  36380. want a copy, send for our catalogue disc (see below) and ask for a copy.
  36381. 7.11
  36382. My clipart directory is made up of many archives, each archive covering
  36383. a set topic. Archives or ArcFS archives are the best way of storing
  36384. clipart on your machine. To give you some idea of the sort of categories
  36385. that you might want to use, here is my list.
  36386. 7.11
  36387. Animals, Arrows, Borders, Buildings, Comms/Media, Computers, Corners,
  36388. Drawing, Drop Capitals, Flashes, Food, Fun (animals, cartoons, toys,
  36389. party), History, Leisure/Sport, Logos, Misc, Music, Nature (flowers,
  36390. insects, pondlife, trees), Objects, Occasions (easter, weddings, xmas),
  36391. People (famous & anatomy) Speech, Symbols, Think, Transport (aircraft,
  36392. boats, others), War and World (maps & flags). (Topics in brackets are
  36393. sub directories.)
  36394. 7.11
  36395. Keep the clipart that you use most regularly on your hard drive.
  36396. Depending on the free space available, you may decide to store some of
  36397. your collection on floppy disc. Incidentally, Huge Eagle has produced an
  36398. excellent application called !PicAPic (available from all good PD
  36399. libraries). It is an absolute must for DTP users, allowing you to view a
  36400. whole directory of clipart at a time and it includes numerous other
  36401. useful features.
  36402. 7.11
  36403. •  Go easy on the fonts and clipart − One of the biggest mistakes for a
  36404. DTP user is to use too many different fonts and images in one document.
  36405. Try to decide on a set of fonts which you are going to use throughout a
  36406. document. By using a good balance of fonts, your work will look well-
  36407. structured and attractive yet easy to read. Then, by introducing the
  36408. right images, the document can be enhanced still further by making it
  36409. more eye-catching.
  36410. 7.11
  36411. •  Ideas − The more DTP work that you create, the more experienced
  36412. you’ll get. One of the best ways of developing your ability to produce
  36413. different styles of work is to look critically at the literature you see
  36414. in everyday life. Just by observing how other people produce leaflets,
  36415. brochures, reports etc, you can get ideas for our own work.
  36416. 7.11
  36417. •  The right font for the right image − Typefaces can act as a powerful
  36418. communication tool, drawing the readers’ attention by suggesting what
  36419. the text is about. For example, an advertisement describing a new
  36420. product aimed at primary education might well use a primary school font
  36421. as this would give the reader the image of education and learning.
  36422. 7.11
  36423. Because the typefaces that you use can make such a difference to the
  36424. first impression, it is important that you choose the correct font for
  36425. each job. As an example, it would be inappropriate to use a decorative
  36426. font for the titles of an exam paper or a primary school font for the
  36427. body text of a business report. Decorative and title typefaces are often
  36428. used excessively.
  36429. 7.11
  36430. (As an exercise, can I suggest you look through the adverts in the June
  36431. issue of Archive? Ask yourself which ones communicate most clearly and
  36432. then try to analyse why that is so. It’s not a case of which advert gets
  36433. the largest amount of information into an A5 advert but which one
  36434. “communicates” in the broadest sense of the word. Ed.)
  36435. 7.11
  36436. •  Printing and papers − Unless you use professional imagesetting and
  36437. printing all the time, the majority of your work will be printed using a
  36438. desktop printer. It’s worth remembering that standard A4 white copier
  36439. paper isn’t always the best medium. Some excellent effects can be
  36440. achieved by using different sorts of paper to add some variety to your
  36441. work. You can choose from papers with varying weights, colours, sizes,
  36442. and types. Shop around for the best deal − you’ll probably find that
  36443. your local paper merchant gives the best choice and price. Viking Direct
  36444. (0800-424444), offer a nationwide delivery service and have a range of
  36445. colour, graduated colour and designer papers. The designer papers are
  36446. pre-printed in full colour A4 pages and are ideal for work that really
  36447. needs to stand out.
  36448. 7.11
  36449. •  Are you Smart? (This is the advertising bit! Ed.) − Last but
  36450. certainly not least, buy your clipart, resources, fonts & DTP
  36451. applications from SmartDTP! We produce our own range of publishing
  36452. resources which is complemented by the products in our DTPDirect
  36453. catalogue. We supply publishing resources from iSV(Exclusive), Micro
  36454. Studio, Tekoa Graphics, Fabis Computing, Design Concept, Southern
  36455. Printers, ABC Of Art & Dabs Press. We offer fast delivery which is
  36456. backed up by a full telephone support service. To obtain our latest
  36457. catalogue disc send your details with a £1 coin stuck to a piece of card
  36458. (so it doesn’t get lost in the post) to the following address:- Smart
  36459. DTP, Catalogue disc, 36 Park Road, Duffield, Belper, Derbyshire, DE56
  36460. 4GR.  (0332-842803)  A 
  36461.  
  36462. Hints and tips (from Multimedia Column)
  36463. 7.12
  36464. •  Genesis Professional − One reader wrote to complain that he was
  36465. getting repeated crashes when trying to replicate frames. I must admit,
  36466. I was unaware of the problem, so I went back and tested it out. The gist
  36467. of it is this: if you open a blank page and pull out a frame and then
  36468. replicate it, the program crashes. Now when you first pull out a frame,
  36469. by default it is a WORD frame, and if you try and replicate it the crash
  36470. occurs as Genesis will not allow you to replicate this type of frame.
  36471. The cure is simple, just convert the WORD frame into a TEXT frame by
  36472. clicking in the frame itself, then you can copy it as many times as you
  36473. like.
  36474. 7.12
  36475. •  Magpie − Some months ago, I issued a challenge to Magpie users about
  36476. making a scrolling binder with continuous music. I got no replies to
  36477. this challenge, but my solution was a bit of a cheat. Using my CD-ROM, I
  36478. set up an audio CD running and then loaded in the Magpie scrolling demo
  36479. which had no sound effects! I’m sure there is a better solution so I
  36480. will keep the prizes until someone comes up with a better one!
  36481. 7.12
  36482. Hints and Tips
  36483. 7.12
  36484. •  Boot structure on the Risc PC − How many of you have got to grips
  36485. with the Boot application on the Risc PC? It’s a little bit messy on
  36486. first glance − and even on second and all subsequent glances! However,
  36487. it is also very powerful and practical. The following is brief guide to
  36488. its contents and what they are used for and goes a little beyond the
  36489. discussion in chapter 11 of the User Guide.
  36490. 7.12
  36491. As many of you have discovered, the !Boot application simply runs the
  36492. configure utility, enabling you to select various hardware and desktop
  36493. options. It has also done an awful lot of work by the time you get to
  36494. the desktop, setting up system variables, configuring your preferences
  36495. and booting and running several applications, modules and obey files.
  36496. Those of you with stronger stomachs may have shift-double-clicked on it
  36497. and will have been faced with a bewildering array of nested directories
  36498. and files, many of which are named !Boot or Boot, !Configure or
  36499. Configure, and all of these are sufficiently dotted with references to
  36500. each other to ensure that all who enter are reduced to quivering
  36501. technophobes.
  36502. 7.12
  36503. Please note that if you are going to make changes to the insides of
  36504. !Boot, you would be wise to take a copy of it first. If you do find that
  36505. the contents of !Boot.Choices.Boot are irretrievably messy, you can run
  36506. the application !ResetBoot in $.Diversions.Tools which will restore
  36507. !Boot to its factory settings. Also, I would recommend keeping a copy of
  36508. the RISC OS applications contained in $.Apps if you intend to make any
  36509. changes to them − as you do not get a copy of them on floppy disc, as
  36510. you did with previous versions of RISC OS.
  36511. 7.12
  36512. Apart from the usual application baggage of !Run, !Boot, !Sprites and
  36513. !Help, there are two directories that are of interest (Resources and
  36514. Choices) and two that aren’t (Library and Utils.)
  36515. 7.12
  36516. Resources contains the applications that RISC OS needs, but which
  36517. needn’t concern the user most of the time, these being !System, !Scrap
  36518. and !Fonts. The !Configure application that gets run automatically by
  36519. !Boot is also here.
  36520. 7.12
  36521. Choices contains nothing but a directory called Boot and it is here that
  36522. the interesting stuff resides.
  36523. 7.12
  36524. The obey file PreDesktop gets run first and sets up aliases and system
  36525. variables. Its most interesting job is to control which applications
  36526. appear when the Apps icon on the iconbar is clicked. In the following
  36527. discussion, ‘Apps’ refers to the directory viewer opened by clicking on
  36528. the ‘Apps’ icon on the icon bar, whilst ‘$.Apps’ refers to the directory
  36529. called ‘Apps’ in the root of the hard disc. As you will see, they are
  36530. not the same.
  36531. 7.12
  36532. By default the contents of $.Apps all appear in the Apps resource. The
  36533. easiest way to have one of your own applications accessible through Apps
  36534. icon is to copy it into $.Apps. Note that any applications deleted or
  36535. moved from $.Apps will no longer appear in Apps after a reset, and
  36536. cannot be retrieved. Apps only contains a ‘facade’ for the real
  36537. applications which are stored elsewhere. If you have a whole suite of
  36538. applications you would like to appear in Apps, and you don’t want them
  36539. messed up with the contents of $.Apps, you can ask PreDesktop to add
  36540. them from any other directory. Near the end of the file PreDesktop is
  36541. the line
  36542. 7.12
  36543. AddApp Boot:^.Apps.!*
  36544. 7.12
  36545. which will place any application in $.Apps into the Apps. If you want to
  36546. add to this a single application stored elsewhere, you can add a line
  36547. something like
  36548. 7.12
  36549. AddApp Boot:^.MyApps.Impression.!Style
  36550. 7.12
  36551. or to add all the applications in a given directory add a line like
  36552. 7.12
  36553. AddApp Boot:^.MyApps.UsefulApps.!*
  36554. 7.12
  36555. The directory PreDesk contains things which need to be run before the
  36556. desktop starts. This is intended for use by applications which need
  36557. software, modules or drivers in place prior to the desktop but you may
  36558. find you are required to place things there manually when installing
  36559. certain new hardware and software products.
  36560. 7.12
  36561. The file Desktop is where the !Boot system filer_boots anything that may
  36562. be needed by the operating system, and some of the essentials for the
  36563. user. Desktop also causes any applications or obey files contained in
  36564. the directory Tasks to be run. Inside Tasks is where applications may
  36565. place files they want to be run within the desktop but before the user
  36566. gets started. It already contains !ROMPatch and a file called Configure.
  36567. If you create a Desktop Boot file from the task manager icon, this is
  36568. where it is saved (see page 139 in the User Guide). You can also store
  36569. your own goodies here. For instance, if you are using an IDE 105Mb
  36570. removable drive in your Risc PC, you may want to place the !SyQuest
  36571. Application in the Tasks directory so that it is always present on the
  36572. iconbar when you start.
  36573. 7.12
  36574. There is a drawback with placing applications in Tasks that install
  36575. themselves on the icon bar. If you choose to create a desktop boot file,
  36576. you may find you get a duplicate copy of your favourite application next
  36577. time you reset the computer. The best way is to try it and see. !Syquest
  36578. doesn’t suffer from this problem.
  36579. 7.12
  36580. You may have tried putting your best backdrop on the pinboard and saving
  36581. the desktop to have it appear every time you use your Risc PC, only to
  36582. find that RISC OS has decided to put one of its bland wallpapers up in
  36583. its place. This is because the ...Tasks.!Boot file containing the state
  36584. of the desktop (and therefore your pretty picture) gets run before the
  36585. file Configure (simply because the files are run alphabetically). Then
  36586. the Configure file simply pastes up the textured background choices you
  36587. make from the !Configure utility and thus overwrites your true
  36588. preference for a backdrop. You can overcome this either by running
  36589. !Configure (by double-clicking on the !Boot application), selecting
  36590. ‘none’ for background texture in the ‘screen’ options and clicking on
  36591. the ‘set’ icon. You could try renaming either !Boot or Configure, so
  36592. that they swap positions, but this is not the way to do it because
  36593. changing either the desktop boot, or running !Configure, will create the
  36594. same problem again.  David Webb, NCS.
  36595. 7.12
  36596. •  Changing ChangeFSI − It is possible to modify !ChangeFSI v0.95 to
  36597. enable non-Risc PC owners to create high/true colour sprites.
  36598. 7.12
  36599. !ChangeFSI v0.95 allows Risc PC owners to create 16bpp (32,000) or 32bpp
  36600. (16,000,000) sprites, but it will not work on non-Risc PC machines − an
  36601. error message comes up if you try and create one! However, a little
  36602. modification of the !ChangeFSI Basic file gets over this problem.
  36603. 7.12
  36604. Open up the !ChangeFSI application and look for a blue Basic file called
  36605. ChangeFSI. Load this file into !Edit and 21 lines down you will see a
  36606. line:
  36607. 7.12
  36608. SYS “OS_SWINumberFromString”,, “OS_SpriteOp” TO spop%
  36609. 7.12
  36610. insert an ‘X’ at the start of the “OS_Spriteop” word so that it reads:
  36611. 7.12
  36612. SYS “OS_SWINumberFromString”,, “XOS_SpriteOp” TO spop%
  36613. 7.12
  36614. and 531 lines down (you may wish to use !Edit’s F5 key short cut here!)
  36615. you will see:
  36616. 7.12
  36617. SYS“Wimp_ReadPixTrans”,&100,sar%,n$,,,, ifactors%,pixtrans%
  36618. 7.12
  36619. insert a ‘X’ at the start of the “Wimp_Read...” word so that it reads:
  36620. 7.12
  36621. SYS“XWimp_ReadPixTrans”,&100,sar%,n$,,,, ifactors%,pixtrans%
  36622. 7.12
  36623. Resave the file!
  36624. 7.12
  36625. Now when you enter a 32,000 colour display mode (or set !ChangeFSI’s
  36626. output option) and drag a suitable JPEG/TIFF, etc image to !ChangeFSI,
  36627. the error will not occur, but a seemingly ‘blank’ white window will
  36628. appear. The image is really there − it just can’t be seen! Save this
  36629. ‘blank’ image and you will have created your very own high-colour
  36630. sprite!  Stuart Halliday, Quantum Software.
  36631. 7.12
  36632. •  Replacement mice − With the Acorn mouse costing £40* and both the
  36633. Clares and Watford mice costing £30, the survival of our school mice has
  36634. been of some concern to me. The oldest mice for the A310s have caused
  36635. most problems as they have weak leads and a little stretching breaks the
  36636. wires inside the cable. They also go out of adjustment causing the
  36637. pointer to stall or go off in the wrong direction. The A3000 mice have
  36638. far fewer problems but, after a lot of use, they too can have cable
  36639. breaks and one has failed electronically. So far, the A3020 type have
  36640. not failed − but perhaps they have not been in use long enough.
  36641. 7.12
  36642. (*We still have a few cut-price Acorn mice at £20. Ed.)
  36643. 7.12
  36644. Repairing mice myself was a time-consuming business and replacement
  36645. leads were costly too; one from Archive is £11 or £13 depending on the
  36646. mouse-type. I have used a company called CSL to repair all the A310
  36647. mice. They are reliable and quick and have a fixed charge of £15 plus
  36648. VAT, which includes a new cable. This is strong and thick and definitely
  36649. child-proof, if a bit clumsy. Meanwhile, I have kept my eyes open for a
  36650. cheap replacement. There are numerous compatible Atari and Amiga mice,
  36651. usually selling for about £10 at shows, but they only have two buttons.
  36652. Similarly, there are PC mice at a slightly higher price, but the 3-
  36653. button variety are for the serial port.
  36654. 7.12
  36655. Thankfully, the latest Maplin catalogue has a cheap 3-button Amiga
  36656. mouse. A little investigation worked out the connections and then a bit
  36657. of delicate soldering to a 9-pin miniature DIN plug, also from Maplin,
  36658. produced a fully working replacement. The mouse is neat and fits well in
  36659. the hand. It has a coated steel ball and membrane switches rather than
  36660. microswitches. These could be replaced, but the feel is good anyway. A
  36661. possible bonus is that the sensitivity is about twice that of the Acorn
  36662. mouse, i.e. it moves twice as far on screen for a given movement across
  36663. the mat.
  36664. 7.12
  36665. For anyone who needs a replacement, I can recommend this route if you
  36666. are a competent solderer with a fine iron. The connections and parts are
  36667. shown below. Although the wire colours in my mouse were in a convenient
  36668. resistor-code order, you should confirm this before soldering.
  36669. 7.12
  36670. Parts from Maplin Electronics:
  36671. 7.12
  36672. RT51F − Amiga Mouse − £10.95
  36673. 7.12
  36674. JX19V − Min DIN Line Plug 9W − 98p.
  36675. 7.12
  36676. (Prices are inc VAT.)
  36677. 7.12
  36678. Mouse plug connections
  36679. 7.12
  36680.   Pin  Function  Colour
  36681. 7.12
  36682.   9  menu  white
  36683. 7.12
  36684.   8  adjust  grey
  36685. 7.12
  36686.   7  select  black
  36687. 7.12
  36688.   6  yb  blue
  36689. 7.12
  36690.   5  ya  green
  36691. 7.12
  36692.   4  xa  yellow
  36693. 7.12
  36694.   3  xb  orange
  36695. 7.12
  36696.   2  +5v  red
  36697. 7.12
  36698.   1  0v  brown
  36699. 7.12
  36700. Keyboard socket (or rear of plug)
  36701. 7.12
  36702. Steve Drain, Portland.
  36703. 7.12
  36704. (If you have never soldered a mini-DIN plug before, be warned − it is a
  36705. VERY fiddly job! Ed.)
  36706. 7.12
  36707. CSL’s address is: 15 Spencer Road, New Milton, Hants, BH25 6BZ.
  36708. 7.12
  36709. •  Resetting the palette on the Risc PC − One of our subscribers happily
  36710. ran one of the alternative palette files, such as those given for
  36711. Artworks and Impression, only to realise that on RISC OS 3.5 there is no
  36712. palette icon with which to alter it, or, more importantly, to reset to
  36713. default. We’ve not been able to find any easy way to reset the palette
  36714. other than to take a default palette from a pre-RISC OS 3.5 computer and
  36715. double-click on it on the Risc PC. This does the job so, for those of
  36716. you who do not have the luxury of another machine, a default palette is
  36717. included on the program disc.  David Webb, NCS
  36718. 7.12
  36719. •  RISC OS 3 Laser Direct driver problems − If you look at last month’s
  36720. Archive carefully, you will see a small printing problem with the new
  36721. RISC OS 3 LD drivers from CC. Take page 50 for example and look at line
  36722. 8 which starts, “Star to average”. As you will probably be able to see,
  36723. there is a distortion of the text which looks like a missing line or
  36724. lines of dots on the printout. Having once identified it, you will
  36725. probably be able to see it on many of the pages of the magazine at about
  36726. the same position!!!!
  36727. 7.12
  36728. CC know about the problem and say that they are looking into it. There
  36729. is, however, a temporary solution. To stop it, you have to switch off
  36730. the half-toning of text. To do this, shift-click on the !Printers icon
  36731. on the iconbar and set the options as shown opposite to “Graphics only”.
  36732. 7.12
  36733. The only slight snag with this is that it reveals another (even worse)
  36734. bug. If, with half-toning on graphics only, you print something
  36735. sideways, it goes completely AWOL and prints the text at the wrong
  36736. spacing and in totally the wrong place!  Ed.
  36737. 7.12
  36738. (Stop Press − CC say that they have a beta-release of version 2.65 which
  36739. they are going to send me. It seems to have fixed the problems but, of
  36740. course, you can never be sure until it is thoroughly tested.  Ed.)
  36741. 7.12
  36742. •  Selecting modes in Basic on the Risc PC − We recently had an enquiry
  36743. regarding the effects of the MODE command in Basic on the Risc PC.
  36744. Unlike previous machines, the mode can be set using a mode definition
  36745. string rather than just a number. The idea is that this gives access to
  36746. the whole range of modes available to the Risc PC. If the specific
  36747. machine on which the software is running does not support the mode
  36748. requested, the closest mode which is available will be selected.
  36749. 7.12
  36750. The mode description string takes the form “Xn Ym Ck” where n is the
  36751. desired X resolution, m is the desired Y resolution, and k sets the
  36752. number of colours – 2, 4, 16, 256, 32K, 16M are all valid colour
  36753. specifiers. For example MODE “X800 Y600 C16” will choose a mode similar
  36754. to mode 31 on earlier machines. Note also that the resolutions given in
  36755. the string are the required resolutions in Pixels, not logical units as
  36756. used by the Basic MOVE/DRAW/PLOT commands for example. More on this
  36757. later.
  36758. 7.12
  36759. The mode can be specified either by number or by string. Most of the old
  36760. modes are supported, and with some calculation, the new modes are also
  36761. accessible by number. The easiest way to find the number is to enter the
  36762. mode using the mode string, and then “PRINT MODE” which will display the
  36763. current mode number.
  36764. 7.12
  36765. Unfortunately, for users who have worked their way up from earlier
  36766. machines, the new system has some strange effects. The new method makes
  36767. more sense than the old system which was based on the BBC Micro system
  36768. of TTL rgb colours, but you do need to be aware of the changes. When a
  36769. mode is chosen by number and the mode has 2, 4 or 16 colours, then the
  36770. palette is redefined to be the same as that offered on the BBC,
  36771. including, for 16 colour modes, the flashing colours. This is identical
  36772. to the operation of earlier RISC OS machines.
  36773. 7.12
  36774. If the mode string is used, however, there are some differences.
  36775. Firstly, using the string has the same result as a “*wimpmode” command
  36776. being issued rather than a “*mode”. The effect is that (a) the desktop
  36777. mode will have changed, and (b) the palette will be redefined to match
  36778. the desktop palette for that number of colours, including clearing the
  36779. screen to a mid-grey background, and selecting black text on a white
  36780. background. Secondly, the computer gets to choose what it thinks is the
  36781. best mode for the job. As noted above, MODE “X800 Y600 C16” gives you
  36782. the same size and colours as mode 31, however the two are not identical.
  36783. MODE 31 specifies a particular mode whereas the string specifies general
  36784. requirements for the mode. In this case, where mode 31 has a refresh
  36785. rate of 56Hz, the mode string selects a mode which has a refresh rate of
  36786. 75Hz, considerably reducing the flicker. The important point here is
  36787. that, by passing a string, the choice of mode is more independent,
  36788. allowing the computer to choose the mode it can support that is closest
  36789. to the mode requested.
  36790. 7.12
  36791. If you need to use a limited number of colours, the best method to use
  36792. is the mode string, followed by a redefinition of the palette if needed,
  36793. using VDU 19,n,16,r,g,b. Individual colours can be chosen as normal
  36794. using GCOL a,c. The more “official” method, especially for high colour
  36795. modes is to use the mode string and the SWI ColourTrans_SetG-COL since
  36796. that will choose the closest colour in the palette defined. (For best
  36797. results, you may still wish to change the palette in low colour modes
  36798. for particular tasks). An example is shown below in procedural form
  36799. which you may find useful. The procedure will work on earlier machines
  36800. as well.
  36801. 7.12
  36802. REM PROCsetcolour
  36803. 7.12
  36804. REM r%, g%, b% set the amounts of red green
  36805. 7.12
  36806. REM and blue for the desired colour,
  36807. 7.12
  36808. REM Colourtrans will be used to pick
  36809. 7.12
  36810. REM the closest colour and set it.
  36811. 7.12
  36812. REM effect% is a standard GCOL effect field
  36813. 7.12
  36814. REM Use SWI number for speed :
  36815. 7.12
  36816. REM ColourTrans_SetGCOL = &40743
  36817. 7.12
  36818. :
  36819. 7.12
  36820. DEF PROCsetcolour(r%,g%,b%,effect%)
  36821. 7.12
  36822. LOCAL colour%
  36823. 7.12
  36824. colour%=(b%<<24)+(g%<<16)+(r%<<8)
  36825. 7.12
  36826. SYS &40743,colour%,,,0,effect%
  36827. 7.12
  36828. ENDPROC
  36829. 7.12
  36830. Finally, let me deal with the OS and pixel units conversions mentioned
  36831. earlier. Unlike PCs where locations of pixels tend to be addressed
  36832. directly, Acorn has always had a level of indirection - the “logical
  36833. resolution”. This had two main advantages in the past, firstly that the
  36834. logical resolution did not change with mode, so a line across the middle
  36835. of the screen would still appear in the middle even if you changed the
  36836. number of pixels on the screen. Secondly, the display worked in the same
  36837. way as a mathematical graph, with the origin at the bottom left corner
  36838. of the screen, y increasing upwards. If absolute pixels are used, the
  36839. top left is the origin, and y decreases downwards.
  36840. 7.12
  36841. The first of these two advantages no longer holds. Because of the
  36842. dramatic increase in resolutions and the need to fit more onto the
  36843. screen mean, the logical resolutions for different modes are no longer
  36844. identical. Consider the table on page 525 of the Risc PC User Guide:
  36845. Mode 12 is 640×256 pixels but has a logical resolution of 1280×1024.
  36846. Incidentally, this was the standard logical resolution for all modes on
  36847. the BBC and earlier Archimedes. Mode 27 at 640×480 only has a logical
  36848. resolution of 1280×960 i.e. although mode 27 is “higher resolution”, you
  36849. actually get less of a page on the screen than you do in mode 12! (You
  36850. will have to take my word for the logical resolutions − they have been
  36851. taken out of the Risc PC manual, but appeared in earlier versions if you
  36852. have access to those – page 221 of the joint User & Applications guide
  36853. for RISC OS 3.)
  36854. 7.12
  36855. This has been used to good effect on the Risc PC, allowing large area
  36856. desktops such as the X1600 Y600 mode which has four times the area of
  36857. the X800 Y600, but only double the number of pixels.
  36858. 7.12
  36859. This means that you do not know what the logical resolution of a mode is
  36860. when you choose it, so to make your software as mode independent as
  36861. possible, you need to check the actual and logical resolutions using the
  36862. SWI OS_ReadModeVariables and set up appropriate scaling factors. If you
  36863. do not have the PRMs, you can assume that for rectangular pixel modes
  36864. 2*X converts a pixel to the correct logical position, and 4*Y gives the
  36865. appropriate scaling for the vertical. In square pixel modes, use 2*X and
  36866. 2*Y for the scaling. If the actual Y resolution is less than half of the
  36867. actual X resolution then it is probably safe to assume a rectangular
  36868. pixel mode, otherwise assume square pixel.
  36869. 7.12
  36870. On the monthly program disc is a program called “setcolour” which
  36871. includes the above procedure. As a demonstration, the program goes
  36872. through 2, 4, 16, 256, 32K and 16M colours and displays a slice from the
  36873. colour cube. (You may find the program fails to display the higher depth
  36874. modes if you do not have any VRAM). Simply double click on it, once it
  36875. has finished the first colour square, press a key to move on to the next
  36876. higher colour depth. You may need to reset your desktop mode after it
  36877. has finished. SetColourN is similar but only uses 2, 4, 16 and 256
  36878. colours referenced by number to demonstrate the difference between
  36879. desktop and default “BBC” palettes. This version will also work on pre-
  36880. Risc PC machines.  Matthew Hunter, NCS.
  36881. 7.12
  36882. •  Sound Boots? − For those of you seeking to boost the sound output of
  36883. your computer, may I suggest you take a quick trip to your local branch
  36884. of Boots the Chemist. In the music department, you should find a pair of
  36885. Boots’ own brand ZX200CD microspeakers for a mere £14.99. These come in
  36886. rather a naff cardboard box, but do have a volume control on the front
  36887. of each speaker plus a PBS button which enhances the bass sound. They
  36888. require four LR6 batteries (about another £3) but as they have auto
  36889. power switch off, these last a fair time. The supplied lead plugs
  36890. directly into the headphone socket on an Acorn computer.
  36891. 7.12
  36892. The difference is stunning and, certainly in a noisy classroom, they
  36893. would be a great help. Even in the home environment, they can make a lot
  36894. of difference.  Paul Hooper, Martham, Norfolk.
  36895. 7.12
  36896. • Thumbnail creation − Quantum Software have provided Archive
  36897. subscribers with a copy of Executor (the playback-only version of
  36898. Keystroke). It has been supplied as seen, with no warranty, etc, for use
  36899. by Archive magazine subscribers only, to demonstrate some of the
  36900. abilities of Keystroke.
  36901. 7.12
  36902. The application has the ability to produce, from a directory of JPEG or
  36903. TIFF files, a multi-sprite file − in effect, making a !Paint ‘thumbnail’
  36904. file.
  36905. 7.12
  36906. These thumbnail sprite files are very useful for displaying your bit-map
  36907. images quickly and, whilst it isn’t as good as a professional thumbnail
  36908. application, they cost money. Because Paint and this copy of Executor
  36909. come free, this is an definite advantage!  Stuart Halliday, Quantum
  36910. Software.
  36911. 7.12
  36912. N.B. Quantum are also offering Keystroke at a special price of £19 to
  36913. Archive subscribers for a limited period. For details, see page 5.  A 
  36914. 7.12
  36915.  
  36916. Hints and Tips
  36917. 8.1
  36918. •  Disabling capslock − It has been pointed out that the capslock key is
  36919. not used very often, and usually only causes confusion when you hit it
  36920. accidentally. (This is a polite way of saying that there had been
  36921. another emission of blue smoke from the Editor’s desk as I HAD JUST HIT
  36922. <CAPSLOCK> ACCIDENTALLY AGAIN!!! Ed.)
  36923. 8.1
  36924. To solve this problem, a short module was written to disable the
  36925. capslock key. When the module is loaded, the key will act as a Caps key,
  36926. but will not lock, i.e. it acts like a shift key but only affects
  36927. letters − the numbers and symbols are unchanged. If you need to re-
  36928. enable the capslock function, press <f12> and type *rmkill disablecaps.
  36929. 8.1
  36930. The module, which works on all Archimedes and Risc PC machines, is on
  36931. the monthly program disc.  Matthew Hunter, NCS.
  36932. 8.1
  36933. Peace has now been restored in the Editor’s office! As far as I’m
  36934. concerned, this module is the best thing since sliced bread. Thanks,
  36935. Matthew!!  Ed.
  36936. 8.1
  36937. •  Risc PC hard disc power-saving – Since the advent of RISC OS 3, there
  36938. has been an option in the IDEDiscs section of Configure for setting the
  36939. spin down delay on the hard drive − similar to the screen blanker. This
  36940. is almost always greyed out, preventing it from being used, the
  36941. exceptions being the A4 portable and some A3020s. (Some third party
  36942. interfaces also support the option, but this hint does not apply to
  36943. them.) This makes sense since, with portables, the battery life needs to
  36944. be preserved. This is less important on a desktop machine and, also,
  36945. there is some question as to the long term effects of spinning the drive
  36946. up and down more than necessary.
  36947. 8.1
  36948. It is possible, however, to control the drive in this way even if you
  36949. have a different machine, providing that the drive supports the
  36950. powersave IDE commands. On the monthly program disc is a command line
  36951. program “powersave”. Double click on “!SetDir” which will make sure you
  36952. are in the correct directory, press <f12> and type “powersave 4”
  36953. <return>. This will give you the list of options and the current spin
  36954. status for drive 4 (which will be meaningless if you are not using ADFS
  36955. to control the drive). There are three control options detailed below.
  36956. 8.1
  36957. “powersave spindown <drivenumber>” will spin down drive <drivenumber> (4
  36958. or 5) immediately. If the drive is not spinning and you try to access
  36959. it, there will be a pause while the drive is spun up before the access
  36960. takes place (occasionally you can open a directory without spinning up
  36961. the drive since it is cached in memory and the drive is never accessed).
  36962. 8.1
  36963. “powersave spinup <drivenumber>” will spin up drive <drivenumber> (4 or
  36964. 5) immediately.
  36965. 8.1
  36966. “powersave delay <drivenumber> <delay>” will set the power-saving delay
  36967. for drive <drive number> to <delay> seconds − note that it is rounded
  36968. down to 5-second accuracy but the timing is not particularly accurate
  36969. anyway. This will not be configured, so if you want to use this feature,
  36970. you will need to run powersave during the boot sequence. It is worth
  36971. making the delay longer rather than shorter since continually spinning
  36972. your drive up and down could reduce your drive’s life expectancy – you
  36973. do this at your own risk.
  36974. 8.1
  36975. One area where this does have a major impact is on the Risc PC − most of
  36976. the noise comes not from the fan but from the hard drive, so if you spin
  36977. down the drive, you can hardly hear the machine at all.  Matthew Hunter,
  36978. NCS.
  36979. 8.1
  36980. •  Splitting Impression documents over several floppy discs − Over the
  36981. past six months, I have spent a lot of time working with Tony Tolver of
  36982. T-J Reproductions and one thing that always amazed me was the number of
  36983. methods used by people to split an Impression document over two or more
  36984. discs − after all, how do you get a quart (or 10Mb) into a pint pot (or
  36985. 800Kb/1.6Mb)?
  36986. 8.1
  36987. The methods I have seen include: PacDir, ArcFS, CFS, Squash and breaking
  36988. down the document and moving the contents of Chapter2 onto further discs
  36989. and then compressing them all.
  36990. 8.1
  36991. All of these are relatively time-consuming, particularly the last one. I
  36992. was sure there ought to be a better way and then I found it by accident
  36993. after upgrading to Hard Disc Companion v2.50 from Risc Developments. I
  36994. read the manual and found that it was easy to back up just one file or
  36995. directory, so here is an easy way for you and for the recipient of your
  36996. file to split Impression documents.
  36997. 8.1
  36998. 1  Install Hard Disc Companion on your iconbar in the usual way.
  36999. 8.1
  37000. 2  Single click on the icon which opens a window.
  37001. 8.1
  37002. 3  Click <menu> and choose Destination, Floppy0 and 800K or 1.6M as
  37003. appropriate.
  37004. 8.1
  37005. 4  Under Preferences, you can select how you wish to make the backup,
  37006. i.e. Very Quickly but with no compression or relatively slowly but with
  37007. maximum compression. The choice is yours.
  37008. 8.1
  37009. 5  Under Files, choose Backup and a window opens onto which you drag
  37010. your Impression document.
  37011. 8.1
  37012. 6  Finally, click on Start on the main window and simply follow the on-
  37013. screen prompts.
  37014. 8.1
  37015. 7  Send your file to the destination address.
  37016. 8.1
  37017. Upon receipt, all that needs to be done is to insert the last disc (so
  37018. it helps if you label them, 1,2. . . etc) and open the window. Two files
  37019. are seen: !Restore and Data. Double click on !Restore to install it on
  37020. the iconbar and drag Data over the icon. Click again on Restore and a
  37021. new window opens. Simply drag the icon to a new directory or the root
  37022. and follow the on-screen prompts. The document will be fully rebuilt on
  37023. the recipient’s computer.
  37024. 8.1
  37025. It may interest you to know that I created a dummy Impression document
  37026. to test this. It was 20Mb long and I used Hard Disc Companion v2.50 to
  37027. split onto six 800Kb floppies at maximum compression − it worked
  37028. faultlessly.
  37029. 8.1
  37030. Hard Disc Companion v2.50 costs £45 +p&p +VAT from Risc Developments or
  37031. £52 from NCS.  Keith Parker, Southall.  A 
  37032. 8.1
  37033. With Risc Developments going into liquidation, we aren’t sure about the
  37034. availability of Hard Disc Companion but, presumably, Beebug Ltd will be
  37035. taking it over.  Ed.
  37036. 8.1
  37037.  
  37038. Hints and Tips
  37039. 8.2
  37040. •  A3000 bulging case − My early A3000 had, from the start, a standard
  37041. Acorn monitor stand upon which was a AKF17 monitor. Of late, I found the
  37042. upper case section, on the left hand side by the power supply, had
  37043. started to bulge out from the bottom section. This was caused by the
  37044. weight of the monitor supported by the Acorn stand only on the extreme
  37045. edges of the case.
  37046. 8.2
  37047. In my job as IT Technician at school, I had noticed (having removed
  37048. countless covers for various reasons) there have been two upgrades to
  37049. the cases, and one of the upgrades had special strengthening and
  37050. interlocking around this area, no doubt with this in mind. The latest,
  37051. Mk 3 version is available as an Acorn spare part. The base of the new
  37052. case requires a lot of work in removing the PCB and any upgrades, and
  37053. the power supply design has changed making the changeover awkward.
  37054. However the new case lid will fit onto the old base and this alone
  37055. offers enough strength to cure the problem.  K R Coton, Solihull.
  37056. 8.2
  37057. •  Disabling POST test (and other useful ‘bits’) − One of our customers
  37058. found that because the POST (Power On Self Test, or the software that
  37059. makes the screen flash pretty colours at switch on and flashes the
  37060. floppy light at you when things go wrong), had been partly disabled,
  37061. meaning that his SCSI drive was not given sufficient time to get ready
  37062. before the SCSI card demanded its attention. Some people may have
  37063. disabled this after installing certain versions of the VIDC enhancer.
  37064. The POST will always be reactivated by a delete-power on, but there is a
  37065. more subtle way of switching it on or off. Byte 188 (&BC) of the CMOS
  37066. RAM contains 8 bits which affect various miscellaneous configuration
  37067. options.
  37068. 8.2
  37069.   Bits 0-1  ROMFS Opt 4 state
  37070. 8.2
  37071.   Bit 2  cache icon enable state
  37072. 8.2
  37073.   Bit 3-5  screen blanker time: 0=off, 1=30s, 2=1min, 3=2min, 4=5min,
  37074. 5=10min, 6=15min, 7=30min.
  37075. 8.2
  37076.   Bit 6  screen blanker/Wrch interaction: 0=ignore Wrch,
  37077. 8.2
  37078.     1=Wrch unblanks screen
  37079. 8.2
  37080.   Bit 7  hardware (POST) test disable: 0=full tests, 1=disable long
  37081. tests at power-up.
  37082. 8.2
  37083. RISC OS 3 PRM, 1-358, Acorn Computers Ltd.
  37084. 8.2
  37085. The program disc contains a simple program for altering the state of any
  37086. of these bits.  David Webb, NCS.
  37087. 8.2
  37088. •  Inkjet printers and paper quality − A number of items have appeared
  37089. here and elsewhere on how to realise to the full the potential quality
  37090. of printouts with ink-jet printers. At 300 dpi, one would think it ought
  37091. to be indistinguishable from the output from a laser printer with the
  37092. same resolution.
  37093. 8.2
  37094. Why is there a problem? All papers are made from fibres, matted
  37095. together; thus, if you put a drop of liquid onto a piece of paper, the
  37096. fluid will flow between these fibres, carrying with it any dye or
  37097. colourant: hence the fuzzy edges of the output from inkjet printers with
  37098. unsuitable papers. Coating the paper can eliminate the problem, but at a
  37099. substantial cost. However, with careful design of the paper making
  37100. process, it is possible to minimise (though not eliminate) this
  37101. ‘bleeding’.
  37102. 8.2
  37103. I wrote to Hewlett Packard and asked for their recommendations They came
  37104. up with two types of paper and their suppliers. I got some samples, and
  37105. both were very good but, by a small margin, ‘Versoix Copy’ seemed to me
  37106. the better (and cheaper). The other, ‘Reyjet’, is close behind and both
  37107. are streets ahead of most ordinary photocopier paper. Neither is very
  37108. expensive (about £3.00 per ream for Vesiox and £5.50 for Reyjet) but
  37109. neither are very readily available. If you write to the distributors,
  37110. they will send you samples and the name of your nearest stockist.
  37111. 8.2
  37112. Versoix Copy − Darent Paper Agencies, Wandle House, Riverside Drive,
  37113. Mitcham, Surrey, CR4 4SU. (0181-640-4102)
  37114. 8.2
  37115. Reyjet − Denian Paper Ltd, Unit D2, West Mill, Imperial Business Estate.
  37116. Gravesend, Kent, DA11 0DL. (01474-569919)  Barry Humpidge.
  37117. 8.2
  37118. •  Irregular text frames in Publisher − In response to one of Keith
  37119. Parker’s wish-it-did-that moans in the Comment Column (8.1 p31), I would
  37120. suggest that whilst irregular text frames would be nice, the use of a
  37121. regular frame “framed” by a couple of repelling irregular graphics
  37122. frames (drag an empty drawfile into blank frames) does the job, with a
  37123. little fiddling.  John McCartney.
  37124. 8.2
  37125. •  Large banners in Impression − To create a six foot long banner, or
  37126. similar, using Impression, create a new master page, “Banner”, width
  37127. 72“, depth 8”, Landscape, margins 0.5 with one column. Quit the master
  37128. pages and alter the chapter of the document, selecting “Banner” as the
  37129. master page. Change the font size to around 400 point and centre the
  37130. text. Type the banner message. Print out on tractor fed continuous paper
  37131. (sideways!). Vector offers some useful banners ready made, or you can
  37132. use Impression’s Borders in ‘Alter Frame’, to enhance the finished
  37133. article.  Irene Quinn, Thetford, Norfolk.
  37134. 8.2
  37135. •  Laser Direct on the Risc PC − If you are upgrading to a Risc PC and
  37136. have an elderly Laser Direct card, it will not work if it is “Issue one”
  37137. (the computer will not initialise after the board has been plugged into
  37138. one of the expansion slots). This type can be quickly identified by the
  37139. fact that it is the only version where there is a ribbon cable
  37140. connecting the circuit board to the printer output socket. Computer
  37141. Concepts will exchange this type of board for the latest version for
  37142. £100. You will probably also need a copy of the most recent version
  37143. (2.63) of the printer driver disc at £10.  David Smith, Edinburgh.
  37144. 8.2
  37145. •  More Sleuths on the case − If you are lucky enough to have lots of
  37146. memory on your machine you can run two or more copies of Sleuth at the
  37147. same time, so that if you are OCRing several pages of text, the rate of
  37148. OCRing can be considerably increased. On a simple test run, two copies
  37149. running saved 36% on the time taken and three copies saved nearly 50% on
  37150. the time! It then occurred to me that using more than one copy might be
  37151. infringing the software licence, but on checking with Risc Developments,
  37152. I was assured that this was not the case.  Philip Foster, Cambridge.
  37153. 8.2
  37154. •  Turbo charging draft printing with a Deskjet printer − What I didn’t
  37155. realise, until I tried it by accident, was that the ‘Draft’ button on
  37156. the printer worked with graphic (e.g. output from Impression), as well
  37157. as ‘straight’ printing. Thus, with your printer driver set to 150 dpi,
  37158. and the ‘draft’ light on, you can produce readable copies for proof
  37159. reading in virtually no time at all!  Barry Humpidge.
  37160. 8.2
  37161. •  Turbo Driver v4 and Dongles − If you are using CC’s Turbo Driver v4
  37162. on a computer with a bi-directional parallel port, via a dongle, the
  37163. status signals don’t get through. This includes signals, such as “paper
  37164. out” and “printer offline” etc. If the driver software is looking for
  37165. these signals you may find that printing is blocked. To bypass the
  37166. problem call up the configuration dialogue box and configure to ignore
  37167. status signals.  Nick Harris, Norwich.  A 
  37168. 8.2
  37169.  
  37170. Hints and Tips
  37171. 8.3
  37172. •  A3000 bulging case (Archive 8.2 p62) − In the hint last month, I
  37173. suggested replacing the plastic cases of A3000 computers. In the text I
  37174. sent to Paul, I made some mention of safety aspects but Paul edited them
  37175. out. (Oops, sorry!) Please note that, for a variety of reasons, you
  37176. should not attempt to change the bottom case if your power supply is the
  37177. cardboard-covered type. If you are unsure, I would be happy for you to
  37178. write to me or ring me on 01564-776745.  Keith Coton, 118 Purnells Way,
  37179. Knowle, Solihull, B93 9ED.
  37180. 8.3
  37181. •  Binder problems − A number of people have said that, when they
  37182. reached the end of Volume 7, the last magazine wouldn’t fit into the
  37183. binder. Let me assure you that they do fit in the binder (well, just).
  37184. If you can’t get them in, it could be because you have been putting the
  37185. rods into the holes instead of into the slots. The holes are there only
  37186. for use when the volume is incomplete, i.e. with a half-full binder, the
  37187. magazines tend to flop about and the rods easily come out unless you put
  37188. the rod for the top issue into an appropriate pair of holes. I suppose
  37189. we ought to send out instructions with the binders, but having used the
  37190. same binders for 8 years, I forget that they are new to some of you.
  37191. Sorry! Ed.
  37192. 8.3
  37193. •  Day of the week function − I agree entirely with the basic message of
  37194. Cain Hunt’s article, “Why bother programming?” (8.1 p29). When I write
  37195. number-crunching programs in Basic, I ‘print’ the results to a spool
  37196. file, which I drag into Impression and format into a suitable
  37197. presentation document.
  37198. 8.3
  37199. One helpful comment, if I may, is that the calendar shouldn’t need to be
  37200. told the day of the week of January 1. The function to use (which
  37201. returns a value in the range 0=Sunday to 6=Saturday) is:
  37202. 8.3
  37203. DEFFNNewYear(Y%)=(1+1461*(Y%−1)DIV4−(1+ (Y%−1)DIV100)*3DIV4)MOD7
  37204. 8.3
  37205. Colin Singleton, Sheffield.
  37206. 8.3
  37207. •  Impression’s single-file document icon − In Archive 8.2 p.19, Paul
  37208. complained about the very dowdy grey icons that Impression Publisher and
  37209. Style use for their documents.
  37210. 8.3
  37211. Fortunately, this is easily changed: All you have to do is look for the
  37212. sprite called file_bc5 in the three directories !Sprites, !Sprites22 and
  37213. !Sprites23 inside Impression’s application directory, and the sprite
  37214. called docsprites inside Resources.Sprites; you can replace them with
  37215. whatever icons you prefer − I took the Impression II document sprite and
  37216. changed its background from white to pale yellow to be able to tell the
  37217. two types of documents apart.  Jochen Konietzko, Köln, Germany
  37218. 8.3
  37219. This was one of many similar suggestions. Thanks to all who attempted to
  37220. put me out of my misery. My desktop is now resplendent with white I’s
  37221. and yellow I’s, so now I can see which I is which. Ed.
  37222. 8.3
  37223. •  Inkjet paper quality (8.2 p63) − Reyjet paper can be obtained from
  37224. ‘Staples (Office Superstores)’. The price, a few months ago, was £2.39
  37225. (+VAT) per ream. I have found these stores to be well worth a visit, in
  37226. terms of both choice and price. Their catalogue contains a paper/printer
  37227. type compatibility chart and lists five types suitable for b/w inkjets
  37228. (from 80gsm to 100gsm, one in A3 size) and three for colour inkjets. The
  37229. Superstores tend to be Home Counties-based (Croydon, High Wycombe, and
  37230. Staples Corner in London) but they have other stores through the country
  37231. (e.g. Leeds, Cambridge, Swansea, etc.) though I do not know if they
  37232. carry full stocks.  Bob Bourne, Ware.
  37233. 8.3
  37234. If anyone can’t get Versoix paper locally, it is readily available from
  37235. Viking Direct at £5.49 per ream or £19.95 per 5 reams, both excluding
  37236. VAT and delivery. Eight reams or more are delivered free, usually
  37237. overnight. Viking Direct are on Freephone 0800-424444 and have a very
  37238. wide range of general computer and office supplies.  Jim Nottingham,
  37239. York.
  37240. 8.3
  37241. •  Impression’s “Some fonts not found” − Since the arrival of Impression
  37242. Style and Publisher, I have read repeated complaints about the fact that
  37243. both versions still replace fonts that have been used in a document but
  37244. are currently not available, with the default font. Coupled with this
  37245. complaint, usually, is a wish that there should be an option to abort
  37246. and install the missing fonts (most recently in Archive 8.1, p.31).
  37247. 8.3
  37248. I can’t quite see the point of these complaints. I work with just three
  37249. or four fonts most of the time, so that one of the all-singing, all-
  37250. dancing font handlers like FontDirectory would be a waste of money for
  37251. me. Therefore, I have simply distributed my fonts over four directories
  37252. − a small one with those few fonts that I use most often and, one step
  37253. down in the directory structure, the rest, grouped according to their
  37254. general look.
  37255. 8.3
  37256. When Impression Style now gives out its “not found” message, all I have
  37257. to do is let RISC OS 3.10 “see” the relevant font directory, then press
  37258. <f12><return>, and the missing font will be loaded into Style.
  37259. 8.3
  37260. Problems really only occur when you load someone else’s document with
  37261. fonts which you don’t have. In this case, it would be nice if Impression
  37262. gave the option to choose the replacement font. You could then use
  37263. something really noticeable like Dingbats, so that it would be easy to
  37264. locate the style or effect that needed changing.  Jochen Konietzko,
  37265. Köln, Germany.
  37266. 8.3
  37267. •  NoCaps II − After the hint in Archive 8.1 regarding disabling the
  37268. capslock key I had a request for a version that would respond normally
  37269. to capslock, but turn it off when shift was pressed. This could be
  37270. useful for things like postcodes, where it is easier to turn capslock on
  37271. than to get confused about when you need to press <shift>. Rather than
  37272. adding this functionality to the original module, I generated a new
  37273. version, which is more economical on space than having both in one, and
  37274. you are only likely to use one or the other. The two modules are on this
  37275. month’s disc as NoCaps (disable capslock as before) and SNoCaps (shift
  37276. disable capslock).  Matthew Hunter, NCS.
  37277. 8.3
  37278. •  Powersave & libraries − Several people have expressed interest in the
  37279. powersave program from issue 8.1 of Archive, but have had difficulty
  37280. incorporating it into their !Boot sequence. I will therefore describe
  37281. how to install it. (The methods apply equally to other command line
  37282. programs you may wish to run − just replace powersave in the description
  37283. below with the program you wish to install.)
  37284. 8.3
  37285. There are three basic ways around this problem. The first thing to do
  37286. (whichever method you use) is to find your boot file. If your machine
  37287. has RISC OS 3.11 or earlier, the boot file will be in the root directory
  37288. of your hard disc (unless you have moved it). On the Risc PC you will
  37289. have to hold down shift (to open application directories) and double-
  37290. click on !Boot, Choices, Boot, Tasks, in that order, as you go down the
  37291. directory structure (clicking with <adjust> each time will close the
  37292. previous filer window − useful in this situation). Once you have located
  37293. your boot file (called ‘!Boot’) hold shift and double-click on it to
  37294. load it into !Edit. Find where in the boot sequence you wish to run the
  37295. program and insert a blank line. Make sure the cursor is at the start of
  37296. the blank line, ready for the command that will execute the desired
  37297. program.
  37298. 8.3
  37299. Probably the easiest method is to use an absolute reference. Copy
  37300. powersave somewhere ‘safe’ and preferably out of the way so that it does
  37301. not clutter the hard disc. Type “RUN ” and then hold down <shift> and
  37302. drag the ‘powersave’ icon, from where you put it, into the text window
  37303. containing the boot file set up above. When you release <select>, you
  37304. should see the full pathname appear in the text file following the run
  37305. command. You can then set up the parameters as described below.
  37306. 8.3
  37307. The second possibility is to set aside a special directory where you
  37308. keep all your command line programs. Fortunately, Acorn provide such a
  37309. system, the Library directory, which on pre-Risc PC machines is, by
  37310. default, a directory called ‘Library’ in the root of your hard disc. On
  37311. the Risc PC, there is a directory inside the !Boot application, also
  37312. called ‘Library’. Open the appropriate Library directory and copy
  37313. powersave into it. You can then type ‘powersave’ into the blank line in
  37314. the boot file ready for the parameters to follow.
  37315. 8.3
  37316. This is fine except that it relies on default settings, and puts
  37317. programs into Library that you only use very rarely. The method I use
  37318. therefore is to put the programs, and utility applications that I load
  37319. only during the boot sequence (backdrop picker, configuration tester,
  37320. for example), into a directory, say ‘BootLib’. I then have a line in my
  37321. Boot file ‘set BootLib$Path full::pathname.$.for.BootLib.’ as
  37322. appropriate for the location of the BootLib directory. Again, this can
  37323. be found by Shift-dragging BootLib into the text editor, but note that,
  37324. to be successful, the path must end with a full stop. I can then run any
  37325. program in Bootlib with the command ‘BootLib:progname’. This is longer
  37326. for a single program, but I only have to set bootlib once, and then
  37327. reference it several times. I have an absolute reference, so the default
  37328. settings do not affect it, and the library directory is kept for
  37329. frequently used programs. It is also far simpler to move the directory −
  37330. if you use the first method, you have to re-enter the full pathname for
  37331. every program that has moved. If I move BootLib, however, I only have to
  37332. change the line where BootLib is set, and all the programs will work as
  37333. before.
  37334. 8.3
  37335. Once you have got the program ready to run by one of the three methods
  37336. above, all you need to do is to add any parameters to the end of the
  37337. line as appropriate for the program. In the case of powersave, an
  37338. example would be ‘delay 4 120’ for a two minute inactivity delay before
  37339. spinning down the drive. Do not use ‘spindown’ in your boot sequence.
  37340. Doing so will force the drive to spindown part way through the boot, and
  37341. immediately spin back up again, causing unnecessary strain.  Matthew
  37342. Hunter.
  37343. 8.3
  37344. •  Publisher: editing effects − It is possible to edit effects as if
  37345. they were styles and even then to turn them from effects into styles. If
  37346. you look inside !Publisher, in the Resources directory is a file called
  37347. UK. In it is a line: “Cnf1:” and if you change this to read “Cnf1:E” and
  37348. re-save it, then from the next time you load Publisher, you will find
  37349. that effects become editable just as if they were styles.
  37350. 8.3
  37351. This partially solved a problem caused by the change to Publisher.
  37352. 8.3
  37353. With Impression II, when articles came in that had bits in bold, I would
  37354. just put them into the magazine and the “bold” bits would come out as
  37355. Plantin.Semibold. (I prefer to use Plantin.Bold because the body text is
  37356. Plantin.Light and the full bold face, although OK for headings, looks
  37357. too dark within the body of the text.) This worked because, prior to
  37358. Style and Publisher, anything using the bold effect was given the name
  37359. “bold” and, in the magazine, the “bold” style was defined as using
  37360. Plantin.Semibold.
  37361. 8.3
  37362. However, if contributors us <ctrl-B> for bold, when I load it into the
  37363. magazine, it forces the text into Plantin.Bold. At first, I had to edit
  37364. “by hand” every single occurrence of the bold effect, changing it into
  37365. my bold style! The way I now get round it is to go to the incoming file,
  37366. click on a piece of “bold” text and press <ctrl-f6> to edit the style.
  37367. The effect then appears in the style editing window as something like
  37368. “Effect17”, or whatever. All I have to do then is to change this name to
  37369. “Bold” and this then becomes a style rather than an effect and, when
  37370. loaded into the magazine, it automatically assumes my Plantin.Semibold
  37371. style.  Ed.
  37372. 8.3
  37373. •  Publisher: finding styles and effects − If you are given a document
  37374. that contains a huge range of effects and styles, as I often am, it is
  37375. good to simplify it before pasting it into another document. (You would
  37376. be amazed at the complex combinations of styles and effects people use
  37377. in their documents!!) You have the choice of a quick <ctrl-A><ctrl-N> to
  37378. remove all styles and effects and then re-insert the styles you really
  37379. want or of leaving in some styles and removing others. But how do you
  37380. know which style/effect does what? Well, styles are easy because you can
  37381. use search and replace to find them. The menu button next to the “Find
  37382. what:” box allows you to enter the name of a style. Then add an “@” and
  37383. it will find the first occurrence of anything in that style.
  37384. 8.3
  37385. Finding effects is more tortuous and can only be achieved if you have
  37386. used the Cnf1:E trick mentioned above. So, if you press <ctrl-A> and
  37387. look across on the Style menu, you will see a list of ticked styles and
  37388. effects. Suppose you decide you want to find what and where “Effect 598”
  37389. is. The trick is that you double-click on a word and use the Style menu
  37390. option to apply Effect 598 to it. Pressing <ctrl-f6> will then bring up
  37391. Effect 598 on the Edit style window. Click on “Show on style menu” and
  37392. OK it. Now you can go to the top of the document and use <f4> to find
  37393. that effect as it will now appear on the find style menu. The only bit
  37394. of really bad planning here is that, if you want to look at each of the
  37395. occurrences of this effect and get rid of some of them, you cannot use
  37396. <ctrl-N> to remove the effect because <ctrl-N> is taken to mean “next
  37397. match” when you are searching! Drat! Keystroke to the rescue again. I
  37398. have programmed <alt-N> to give me the menu selection, Style − Clear all
  37399. styles. Ed.
  37400. 8.3
  37401. •  Screenload on the Risc PC − It has been pointed out that the
  37402. *screenload command appears to work differently on the Risc PC from
  37403. previous machines, in that it no longer loads into the current graphics
  37404. window but loads at the bottom left corner of the screen instead. In
  37405. fact the operation has not changed, but is modified by the new mode
  37406. system. A screenload will load the sprite to the screen, changing mode
  37407. if necessary, and it is the mode change that causes the problems. For
  37408. example, if, while in mode 31, you screenload a sprite, defined in mode
  37409. 27, the computer will change to mode 27 first. Changing mode redefines
  37410. the graphics window, so you will find that (on any machine) the result
  37411. of the following program will be to place the sprite in the bottom left
  37412. hand corner of the screen (assuming there is a sprite called ‘test’,
  37413. defined in mode 27 in the currently selected directory).
  37414. 8.3
  37415. MODE 31
  37416. 8.3
  37417. VDU 24;100;100;600;600;
  37418. 8.3
  37419. *SCREENLOAD test
  37420. 8.3
  37421. This is because the graphics window set by the VDU 24 is reset by the
  37422. mode change implied in the *screenload. Adding the lines.
  37423. 8.3
  37424. VDU 24;200;200;600;600;
  37425. 8.3
  37426. *SCREENLOAD test
  37427. 8.3
  37428. to the end of the program will successfully move the sprite to 200,200
  37429. before plotting... except on the Risc PC. This occurs because the mode
  37430. is already set to 27, so the mode is not changed, and the graphics
  37431. window remains intact. The problem with the Risc PC is that when the
  37432. machine tries to change into mode 27 (after the first screenload) it
  37433. ends up as a 640 by 480, 16 colours, 60Hz mode. Therefore, although the
  37434. sprite is loaded, the machine is not actually in mode 27, so the next
  37435. screenload also tries to change to mode 27, resetting the graphics
  37436. window again. Unfortunately changing the mode in which a sprite is
  37437. defined is does not cure the problem. If you need to move the sprite
  37438. away from the bottom left corner, you will need to use sprite calls to
  37439. load and plot the sprite yourself.  Matthew Hunter, NCS.
  37440. 8.3
  37441. •  Style file size − The Impression Style manual says that: “Deleting
  37442. unused master pages does not make the document significantly smaller”
  37443. (page 180) and “Single file format has the advantage that files are
  37444. smaller. This is useful for short documents such as letters” (page 17).
  37445. However, there is no comment on the merits of deleting unused styles, so
  37446. I thought I would check it out.
  37447. 8.3
  37448. Taking a two page letter built on a letter master page and with a sprite
  37449. picture (25,240 bytes), I have tested these statements out. The Info Box
  37450. gave:
  37451. 8.3
  37452. Document  Pages: 2  Size: 171Kb
  37453. 8.3
  37454. Text  Stories: 19  Memory: 6Kb
  37455. 8.3
  37456.   Chapters: 1  Words: 452
  37457. 8.3
  37458. Graphics  Pictures: 5  Memory: 147Kb
  37459. 8.3
  37460. When saved, the document took up 175,912 bytes (single file) or 176,543
  37461. bytes (directory)
  37462. 8.3
  37463. The reason for the massive size is that I had four master pages for
  37464. different letter-type documents, each with the logo graphic. So, after
  37465. removing three unused master pages, the document took up: 42,792 (single
  37466. file) or 44,367 (directory).
  37467. 8.3
  37468. The document had fifteen other unused master pages which took up between
  37469. 188 and 1,216 bytes each − when all were removed, the document shrank
  37470. to: 35,316 (single file) or 36,851 (directory).
  37471. 8.3
  37472. If I saved the text only, with no style information, it only occupied
  37473. 2,332 bytes.
  37474. 8.3
  37475. As I already have the picture stored elsewhere, I only need to keep the
  37476. text and that does not need any style or frame information and so my
  37477. final storage needs will not be 176Kb but about 2Kb which can then be
  37478. very effectively archived.
  37479. 8.3
  37480. What I have learnt from this: (1) save all writing as text files if
  37481. possible, (2) redundant styles do not take up a large amount of space
  37482. and there is no benefit in removing them for storage reasons and (3) be
  37483. careful how many times you save graphics, especially in dormant master
  37484. pages!
  37485. 8.3
  37486. I will now remove many of the master pages from my default document and
  37487. save them in separate documents (or in useful groups as I don’t think
  37488. you can merge master pages into one document!) for when I need them.
  37489. This will also have the knock-on effect of having smaller initial
  37490. documents in memory which will load more quickly!  Robert Lytton,
  37491. Leeds.  A 
  37492.  
  37493. Hints and Tips
  37494. 8.4
  37495. • Risc PC monitor configuration − One of the biggest problems people
  37496. have had with the Risc PC is finding that their machine will not drive
  37497. the monitor correctly, either because they are using a non-standard
  37498. monitor, or they have accidentally configured the machine incorrectly.
  37499. The !Mon application aims to rescue you from this situation.
  37500. 8.4
  37501. The program has a number of local monitor definition files, which it
  37502. will try in turn. One of them should give a usable display on your
  37503. monitor, after which you should set up your machine again so that the
  37504. configuration is correct.
  37505. 8.4
  37506. In order to use the program, you will need to do the following, typing
  37507. blind where necessary:
  37508. 8.4
  37509. a) Turn on the computer and wait for it to finish booting up (wait until
  37510. the hard disc activity stops).
  37511. 8.4
  37512. b) Insert the program disc into the floppy drive.
  37513. 8.4
  37514. c) Press <f12>.
  37515. 8.4
  37516. d) type “adfs” and press <return>.
  37517. 8.4
  37518. e) type “mount 0” and press <return>.
  37519. 8.4
  37520. f) type “start” and press <return>.
  37521. 8.4
  37522. This will start the program and try the first monitor definition file
  37523. AKF11/12 which will not work on the AKF60’s/85’s supplied with the Risc
  37524. PC, but it is better to try this one first than a high end monitor
  37525. definition file which could damage a TV resolution monitor. You can
  37526. cycle through the available monitors by pressing <space>. Alternatively
  37527. you can jump to any of the files by pressing the appropriate number key,
  37528. the most useful are 4 (AKF60) and 5(AKF85). When the program loads a new
  37529. monitor definition file it will pause for two seconds, to give the
  37530. monitor time to catch up, and then beep. If you have a stable picture€,
  37531. press <y> to finish, followed by <return> to get back to the desktop.
  37532. Note that this will not reconfigure your machine – if you switch off
  37533. without reconfiguring, you will have the same problems next time – but
  37534. it will get you a working system. This program is on the monthly program
  37535. disc. Matthew Hunter, NCS.  A 
  37536.  
  37537. •  DPatch/DongleKey – This program was on the Archive 7.9 Program Disc
  37538. to unlock Impression/Artworks dongles which otherwise can prevent
  37539. printing taking place.
  37540. 8.5
  37541. If all CC dongles are removed from a machine, DPatch must be deleted
  37542. from the !Boot file. Without a dongle fitted, DPatch will cause all
  37543. printer output to be corrupted. I discovered this when transferring
  37544. Publisher and Artworks from A5000 to Risc PC and attempting to set up
  37545. the A5000 with a Star XB24-10. The Risc PC does not need the patch to
  37546. allow printing to go ahead in the absence of Publisher or Artworks. S
  37547. Goddard, Bury St Edmunds.
  37548. 8.5
  37549. •  Garbled *Screensave: This is a cross between a bug-report and a note
  37550. saying, “If this happens to you, you’re not going mad”. I’ve just
  37551. started using !Quickshow, a neat little slide-show utility from DeskTop
  37552. Projects. When it saved a completed screen to disc, it seemed to write a
  37553. garbled sprite, with blocks of the sprite moved around internally.
  37554. Examining the code showed that the program simply displays the sprite on
  37555. screen and then does a *Screensave to write the sprite to disc.
  37556. Furthermore, the corrupting of the sprite didn’t occur when I wrote to
  37557. floppy rather than to my hard disc. Writing a one-line Basic program to
  37558. perform a screen dump replicated the bug absolutely consistently, and
  37559. only in mode 15. I conclude that, on my A310, RISC OS 3.10, with version
  37560. 1.16 of the Oak SCSI software, with a 270Mb Quantum drive, in mode 15,
  37561. *SCREENSAVE to the hard disc has a bug – somewhere! I don’t know what to
  37562. suspect, but if you ever encounter garbled sprites, don’t blame the
  37563. application – or tear your hair out!  Stuart Bell, Horsham.
  37564. 8.5
  37565. •  Tablemate warning − Unless your table is small, DO NOT type your data
  37566. directly into Tablemate. Instead, type it into a CSV file using Edit and
  37567. import that. I have two tables several pages long and did not import the
  37568. text. As a result the only way I can now edit them is by exporting
  37569. drawfiles and patching them back together.  Peter Bond, Carnforth.  A
  37570. 8.5
  37571.  
  37572. Hints and Tips
  37573. 8.6
  37574. •  DPatch/DongleKey − Contrary to S Goddard’s comments about DPatch (8.5
  37575. p32), in my experience, DPatch is needed on the Risc PC if a Publisher
  37576. dongle is fitted, but Publisher has not been loaded. Any comments?  F
  37577. Jukes, Leeds.
  37578. 8.6
  37579. •  Mode summary − This was written for those with hires/multisync
  37580. monitors and shows what is available.
  37581. 8.6
  37582. The choice of screen mode is a trade-off between the various factors and
  37583. how much you want to get on the screen and one time.
  37584. 8.6
  37585. Refresh speeds depend on the individual, but I find the 51Hz of mode 102
  37586. flickers too much on my monitor, so I designed 107. The higher the
  37587. better with refresh rates.
  37588. 8.6
  37589. Speed refers to how much the screen mode slows down the ordinary Acorn
  37590. computer. To keep the screen re-drawing quickly, use a mode with a
  37591. higher figure.
  37592. 8.6
  37593. Square screen modes give a better idea of what the final result will be
  37594. like, though rectangular modes are usually quite adequate except for
  37595. accurate graphic work.
  37596. 8.6
  37597. All the information was gathered using Flip Top from Computer Concepts. 
  37598. Steve Hutchinson, Gloucester.
  37599. 8.6
  37600. •  Style/Publisher file sizes − Robert Lytton was writing about graphics
  37601. eating up disc space when used on several master pages within an
  37602. Impression document. I had the same problem with my “stationery”
  37603. document, containing master pages for A4 letterhead, A5, US letter (for
  37604. sending a fax to North America), comp slip, etc − each had my squiggly
  37605. logo − about 30Kb compressed.
  37606. 8.6
  37607. I was pleased to find that Impression’s ‘Select-Adjust trick’ works:
  37608. Make a blank frame on each master page, drop the graphic into one of
  37609. them, then click <Select> on it and <Adjust> in all the others. Bingo!
  37610. The graphic appears wherever you want it but only once in memory. The
  37611. “master” chapter behaves in the same way as ordinary chapters in the
  37612. document. Jim Nagel, Glastonbury.
  37613. 8.6
  37614. •  Updating software − When updating a piece of software, it is tempting
  37615. to simply copy the new version over the old version with the newer
  37616. option set. This is not ideal, however, since it leaves old redundant
  37617. files in the application, taking up space. Therefore it is better to
  37618. delete the old version (or move it elsewhere if you are worried about
  37619. losing it) before installing the new. Roger Darlington, Manchester.  A
  37620. 8.6
  37621. Mode  Size  Memory   Refresh  Speed  Colours   Shape
  37622. 8.6
  37623. Acorn standard modes
  37624. 8.6
  37625. 12  640×256  96k  100Hz  4.79  16  Rect
  37626. 8.6
  37627. 20  640×512  160k  51Hz  4.7  16  Square
  37628. 8.6
  37629. 21  640×512  320k  51Hz  2.59  256  Square
  37630. 8.6
  37631. 27  640×480  160k  59Hz  4.57  16  Square
  37632. 8.6
  37633. 28  640×480  320k  59Hz  2.12  256  Square
  37634. 8.6
  37635. 31  800×600  256k  37Hz  4.69  16  Square
  37636. 8.6
  37637. 39  896×352  160k  60Hz  4.51  16  Rect
  37638. 8.6
  37639. 40  896×352  320k  60Hz  2.08  256  Rect
  37640. 8.6
  37641. Modes from Newmodes, VIDC enhancer or WW modes
  37642. 8.6
  37643. 66  832×288  128k  79Hz  4.57  16  Rect
  37644. 8.6
  37645. 67  832×288  256k  79Hz  2.03  256  Rect
  37646. 8.6
  37647. 98  800×600  256k  57Hz  4.99  16  Square
  37648. 8.6
  37649. (99 should be 256 colour version, but my Taxan 770+ won’t work with it)
  37650. 8.6
  37651. 102  1152×448  256k  51Hz  5.06  16  Rect
  37652. 8.6
  37653. 107  1088×432  256k  60Hz  5.13  16  Rect
  37654. 8.6
  37655.  
  37656. Hints and Tips
  37657. 8.7
  37658. •  Desktop Font − If you find you are losing information on RISC OS 3.5 
  37659. because your desktop font means that characters are truncated in icons 
  37660. designed to take the System font, remember that you can select the 
  37661. system font, until software producers catch up. Alternatively you can 
  37662. edit the offending templates using FormEd, or similar. Peter Prewett, 
  37663. South Australia.
  37664. 8.7
  37665. •  “Gang screen” in RISC OS 3.5 − In RISC OS 3.10 there is a hidden 
  37666. “gang screen”, showing the names of the people who worked on the 
  37667. version; does anyone know if such a thing also exists in version 3.5? Or 
  37668. can it be that the developers have, this time, only put that picture 
  37669. into the “50-99” directory of !SlideShow images?  Jochen Konietzko, 
  37670. Köln, Germany.
  37671. 8.7
  37672. If you open the RISC OS 3.5 info window (press <menu> over the iconbar 
  37673. acorn) and use the menu button to click out the word “team” on the 
  37674. letters of “Acorn Computers”, it will initiate a list of names for you.  
  37675. Matthew Hunter, NCS.
  37676. 8.7
  37677. •  !KeyStroke’s KeysLib − If you use KeyStroke, you should take a close 
  37678. look at the small Basic programs inside the KeysLib library − some of 
  37679. them are very useful!
  37680. 8.7
  37681. My personal favourites are forceAback and forceAfront which give you 
  37682. quick access to parts of the Pinboard hidden by a window. ForceAback 
  37683. puts all windows behind the Pinboard (you can see that they aren’t 
  37684. simply closed if one of them extends down onto the iconbar) and 
  37685. forceAfront reverses the process. To hide the windows, you define a 
  37686. keystroke for a *Command:
  37687. 8.7
  37688. Text: *Run <Keystroke$Lib>.forceAback
  37689. 8.7
  37690. The equivalent text for forceAfront will make the windows reappear. Of 
  37691. course, you must make sure that the filer has ‘seen’ KeysLib for this to 
  37692. work.  Jochen Konietzko, Köln.
  37693. 8.7
  37694. •  Long file names in RISC OS 3.5 − In Archive 8.6 p.68, Keith Hodge 
  37695. made a little wish list for future versions of RISC OS; one of those 
  37696. wishes was ‘long file names’. The manual for the German RISC OS 3.50D 
  37697. does indeed state that a name must be between one and ten characters 
  37698. long but this does not seem to be the whole truth. I have grown 
  37699. accustomed to using the Cropping option in RISC OS 3.10, which meant 
  37700. that I did not have to count if the intended name had exactly ten or 
  37701. maybe more letters but on my Risc PC those slightly too long names are 
  37702. not cropped!
  37703. 8.7
  37704. As the picture shows, it is possible to type in up to 30 characters 
  37705. before there is an error message “Name too long”. This seems to work 
  37706. only in MemFS − surely there should be a way to implement it 
  37707. everywhere?  Jochen Konietzko, Köln.
  37708. 8.7
  37709. (This doesn’t seem to work on the UK version of RISC OS 3.5. Ed.)
  37710. 8.7
  37711. •  Saving Wolfenstein games − Have you, too, noticed that sometimes, 
  37712. when you save a game in Wolfenstein 3D, the name disappears, giving an 
  37713. ‘empty’ slot in the Save window?
  37714. 8.7
  37715. If you have, you probably use CC’s !Compression. I have found that on my 
  37716. RISC PC, as long as the !CFS.!Run file is open, the save option of 
  37717. Wolfenstein 3D does not work properly (If you don’t know how to find out 
  37718. which files are open, there’s a little PD utility called !FileMan which 
  37719. lists all open files and allows you to close them one by one.)  Jochen 
  37720. Konietzko, Köln.
  37721. 8.7
  37722. •  Talking !Alarm − I have always wanted to have alarms which spoke to 
  37723. me but I could not find a way to do this. When I dropped sound files 
  37724. onto the Alarm Set window, all I got was a silent graph from Audioworks 
  37725. or Soundlab. However, there is a way, thanks to an idea given to me by 
  37726. David Pratt who used to run GemPD. I have used this on the Risc PC, but 
  37727. I see no reason why it shouldn’t work on any other machine. There is 
  37728. probably a clever ‘programmers type’ way to do this, but I am a simple 
  37729. ‘drag and drop’ person with no programming skills at all. You just need 
  37730. two small Utilities obtainable from PD. They are !Compress and !Player 
  37731. both by David Radford and obtainable from Datafile.
  37732. 8.7
  37733. Using the Oak Recorder and !Soundlab, make Armadeus files of anything 
  37734. you want Alarm to tell you. My first recording was of my wife saying 
  37735. “It’s midnight − time to come to bed!” I also recorded snippets like 
  37736. “Coffee time” and, I have to confess, “Time to watch Neighbours”.
  37737. 8.7
  37738. Using !Compress, make compressed versions of these files. You must not 
  37739. keep the uncompressed files in the computer or !Player seems to get 
  37740. confused and an unholy row erupts!
  37741. 8.7
  37742. Now load !Player into your Risc PC Bootfile in Choices.Boot.Tasks. When 
  37743. you drop one of the compressed sound files into the Alarm Set window, 
  37744. choose Task alarm and set the time and day, !Player in the boot file 
  37745. activates the sound exactly on time. 
  37746. 8.7
  37747. “Are there any drawbacks?” I hear you cry. Well, I found that having 
  37748. done their job, the compressed sound files seem to remain open, so that 
  37749. when the computer boots up each morning it goes happily through each 
  37750. recording again playing them until finished. But a small price to pay 
  37751. for having a talking chum who tells you what to do each moment of the 
  37752. day. No doubt there will be someone who can tell us how to stop this 
  37753. little problem.  Christopher Jarman, Winchester.
  37754. 8.7
  37755. •  Turbo Drivers and Printers 1.28 − the current versions of the Turbo 
  37756. Drivers complain that they need a later version of !Printers when you 
  37757. try to install them into the latest version of !Printers, currently 
  37758. being shipped with new Risc PCs. This can be circumvented by copying the 
  37759. install program to your hard disc, and editing the copy by removing line 
  37760. 91 of the !RunImage file (that is the 91st line of the program, not 
  37761. Basic line 91). The Turbo Drivers should then install correctly. If you 
  37762. do not wish to attempt this then get in contact with Computer Concepts. 
  37763. CC Technical Support.  A
  37764.  
  37765. Hints and Tips
  37766. 8.8
  37767. CC Turbo Driver v4 − I’d like to pass on to other Archive readers some 
  37768. answers that I received from CC.
  37769. 8.8
  37770. 1) The command *Printer$BlackScale is no longer supported by the v4 
  37771. TurboDrivers; instead, CC offer “sophisticated colour correction 
  37772. tables”; those for HP printers are “shortly” to be released.
  37773. 8.8
  37774. 2) The Turbo module which could be used in earlier versions of the TD to 
  37775. enable other printer drivers to use the dongled cable has been replaced 
  37776. by the program !PrintQFS, which is cunningly hidden within 
  37777. !System.!CCShared.
  37778. 8.8
  37779. By the way, CC informed me that Style has reached version 3.07. Free 
  37780. upgrades from v. 3.04 can be obtained in the usual way − by sending in 
  37781. master disk 1. (Don’t forget to send the return postage!)
  37782. 8.8
  37783. Jochen Konietzko, Köln, Germany u 
  37784. 8.8
  37785. Fireworkz Pro − I reported some problems with version 1.20 to Colton 
  37786. Software and was told (in a letter dated 15th March) that the latest 
  37787. version, 1.20/50, fixes most of these problems. Version 1.21 “is due out 
  37788. in about three weeks”. (Colton are currently saying, “it will be 
  37789. available during April”. Ed) The upgrade procedure here is to send in 
  37790. both program disks − don’t forget − return postage!
  37791. 8.8
  37792. Jochen Konietzko, Köln, Germany u 
  37793. 8.8
  37794. Printing from text editors − I mentioned, in my review of lottery 
  37795. packages, that one of them would not print on my LaserDirect, because it 
  37796. ‘prints’ to a null file instead of to the printer. I have now stopped 
  37797. trying to use Zap for the same reason. If I drag a text file to the 
  37798. printer icon (with Zap installed instead of Edit), it prints properly 
  37799. but if I try to print the document currently displayed on the screen, it 
  37800. does not. I don’t know whether this is a general problem or whether I 
  37801. have overlooked some control parameter.
  37802. 8.8
  37803. Colin Singleton, Sheffield u 
  37804. 8.8
  37805. Many text editors, including both Edit and Zap, cheat when you try to 
  37806. print and send the data directly to the parallel port. This is fine if 
  37807. you have a standard printer, but if you use a different connection (e.g. 
  37808. serial or laser direct), the file will not be printed. Also, if you use 
  37809. a Turbo Driver, it is circumvented by Edit, so the text is corrupted. 
  37810. There are a couple of ways around this.
  37811. 8.8
  37812. You can save to a file and drag that to the printer icon, or try 
  37813. dragging the file from the save box to the print icon. This should have 
  37814. the same result and it means that you don’t have to delete the file 
  37815. afterwards. With Zap, you can also press <shift-print> rather than 
  37816. <print> which will force the printout to go via the printer driver. 
  37817. Since Zap allows you to reconfigure the keyboard shortcuts, you can set 
  37818. <print> to print via the printer driver. (Choose Edit keys from the 
  37819. options submenu, find the print keymapping which, by default, will be 
  37820. set to Quickprint and change it to Printfile. Save the keys file and 
  37821. choose Reload keys again, from the options submenu for the change to 
  37822. take effect).
  37823. 8.8
  37824. Matthew Hunter, NCS u 
  37825. 8.8
  37826. Wolfenstein bugs − A few days after I had sent my Wolfenstein hint 
  37827. (Archive 8.7, p.12) to Paul, I found that sometimes the saved files 
  37828. remained open even though the !Cfs.!Run file was not.  I turned to 
  37829. PowerSlave for help and this is what Eddie Edwards told me:
  37830. 8.8
  37831. There is a bug in Wolfenstein’s code which means that the files are only 
  37832. closed when the current directory is on the same filing system as 
  37833. Wolfenstein. Since I use ADFS and SCSI, this would often not be the 
  37834. case.
  37835. 8.8
  37836. The recommended remedy is to add, at the start of the !Run file, a 
  37837. Dir<Obey$Dir> command.
  37838. 8.8
  37839. This fix seems to work perfectly.
  37840. 8.8
  37841. Another problem I have is that Wolfenstein always kills my computer’s 
  37842. beep. This bug can be fixed by adding:
  37843. 8.8
  37844. Channelvoice 1 MyVoice
  37845. 8.8
  37846. to the end of the !Run file.
  37847. 8.8
  37848. Jochen Konietzko, Köln, Germany u 
  37849. From COmment COlumn
  37850. Turbo Drivers (not a) problem − The problem of Printers 1.28 with the 
  37851. current versions of the Turbo Drivers has, apparently, now been fixed, 
  37852. so please do not remove line 91 (as we stated in Archive 8.7 p13) of the 
  37853. !RunImage file! If you still have a problem, contact Computer Concepts.
  37854. 8.8
  37855. CC Technical Support u 
  37856.  
  37857. Hints and Tips
  37858. 8.9
  37859. Canon BJ200 + CC TurboDriver − I have had a number of problems with this 
  37860. combination, and thought my solutions may help others.
  37861. 8.9
  37862. The first problem concerned the output of IBM ProPrinter strings. These 
  37863. occur because the BJ-200 printer definition file supplied is an IBM 
  37864. definition file, and should therefore be labelled as BJ10 since IBM 
  37865. strings cannot be used in BJ200 mode. The converse also applies, i.e. 
  37866. BJ-10 mode cannot handle Epson strings. I then used an Epson printer 
  37867. definition file from the Acorn supplied discs, and all the problems 
  37868. disappeared.
  37869. 8.9
  37870. The second problem concerned printing from Basic. I have written a WIMP 
  37871. application which writes out a series of results for the bridge club of 
  37872. which I am a member. I need to write direct from Basic so that I can 
  37873. alter the print style and line and row spacing to produce the best 
  37874. layout, using the comprehensive spacing and styles provided in BJ200 
  37875. mode. It makes no sense to write these strings to the screen so I use 
  37876. *FX3,10 to start the printed output and *FX3,0 to stop it. Everything 
  37877. prints perfectly, but a drawfile will not print afterwards. I eventually 
  37878. discovered that the *FX3,10 caused a Turboqueue file to be created, but 
  37879. the *FX3,0 command leaves the file open and thus hangs the printing 
  37880. process. I finally received a letter from CC today and I quote:-
  37881. 8.9
  37882. “Regarding the Basic printing ‘problem’. The operating system itself 
  37883. will not close the printout file after a *FX3,0. Indeed, we have 
  37884. reported this as a bug to Acorn. However, if you immediately follow the 
  37885. *FX3,0 command with a VDU3, then the file will close correctly.”
  37886. 8.9
  37887. I have tried it and it works!
  37888. 8.9
  37889. John Wallace, Crawley
  37890. 8.9
  37891. CD-ROMs − With the advent of magazine CD-ROMs, which usually come in a 
  37892. soft plastic sleeve, the safe storage of these can be made using a 5¼“ 
  37893. disc box.
  37894. 8.9
  37895. Ted Lacey, Southampton
  37896. 8.9
  37897. Cursor movements in Publisher − There have been moans about one aspect 
  37898. of Impression Publisher in various Acorn magazines: <shift-cursor> no 
  37899. longer moves the cursor by one word, but is used for selecting text.
  37900. 8.9
  37901. In the latest version (1.05) of Publisher, the Preferences dialogue box 
  37902. contains the option “Shift Cursor Word Move”, so you can take your pick.
  37903. 8.9
  37904. Jochen Konietzko, Köln, Germany
  37905. 8.9
  37906. Debugging via the serial port − Why has no-one extolled the virtues of a 
  37907. second machine connected via the serial port? Even on the old BBC B, 
  37908. this can be very useful. A trivial Basic program on the second machine 
  37909. will print out the incoming data stream. Debugging time can then be cut 
  37910. by such simple things as
  37911. 8.9
  37912. os_cli(echo Start of initialise() {serial: });
  37913. 8.9
  37914. in a C file. Clearly this is rather basic; a variadic function like 
  37915. printf() is much more flexible, but the general usefulness, especially 
  37916. when working on desktop applications, is considerable. Besides, there 
  37917. must be lots of old machines around gathering dust. I use an old mono 
  37918. Kaga monitor I’ve had since soon after the BBC first came out, and an 
  37919. old 310 with no disc drive.
  37920. 8.9
  37921. John West, Surrey
  37922. 8.9
  37923. Deskjet 540 problems − I recently bought an HP DeskJet 540, the 
  37924. replacement for the DJ520 and then spent a frustrating weekend trying to 
  37925. get it to work with my A5000. I got beautiful printouts but it took half 
  37926. an hour to print an A4 page. I tried the latest Acorn DeskJet driver 
  37927. sent to me by Gerald Fitton, but it was no better than previous 
  37928. versions.
  37929. 8.9
  37930. As soon as Monday came, I phoned Acorn and they had just heard from 
  37931. their Australian office that other people had similar problems. Since 
  37932. the DeskJet 540 is software controlled and the Centronics protocol has 
  37933. been slightly modified, the 540 and A5000 were incompatible.
  37934. 8.9
  37935. The earlier Deskjet 520 was perfectly suitable to work with the A5000 
  37936. but it was now officially off the market. Fortunately, the shop where I 
  37937. purchased the 540 gave me a full refund when I explained the dilemma, 
  37938. and I knew that I had seen a 520 recently in another store. I was lucky 
  37939. and purchased the last one in stock − its monochrome resolution 600 by 
  37940. 300 is the same as the 540 but it does not have the colour upgradability 
  37941. of the 540.
  37942. 8.9
  37943. Acorn say that the 540 should work satisfactorily with the Risc PC but 
  37944. not with earlier computers, due to hardware differences in the 
  37945. controller.
  37946. 8.9
  37947. (I gather that, after further investigation, it seems that the problem 
  37948. is only with certain A5000s, not with all of them. Ed.)
  37949. 8.9
  37950. Michael Nurse, Cambridge
  37951. 8.9
  37952. Gang Screen in RISC OS 3.5 − With reference to Hints & Tips (Archive 
  37953. 8.7), the list of names can be initiated by four clicks of the menu 
  37954. button over any part of © Acorn Computers Ltd, 1994, although it 
  37955. sometimes refuses to work again until after a reboot.
  37956. 8.9
  37957. M R Buckland, Daventry
  37958. 8.9
  37959. Impression printing − Now, I know you all know this, but... for months, 
  37960. I have been cursing the fact that, with Acorn’s new printer drivers and 
  37961. LaserDirect, printing one file too soon after another causes a “not 
  37962. enough memory to print” error and you have to wait and try again. Well, 
  37963. I discovered today that if you grab several files together and drop them 
  37964. on the printer driver icon, they print off, one after the other, without 
  37965. so much as a hesitation. I wish someone had told me before!!!!!!!
  37966. 8.9
  37967. Ed.
  37968. 8.9
  37969. More uses for the serial port − One of the pieces of software built into 
  37970. the A-Link is the terminal software which could be used to receive the 
  37971. debugging data, described by John West above, on a Pocket Book.
  37972. 8.9
  37973. I find this combination useful for another task as well. There are at 
  37974. least two PD applications which allow you to set up a task window (as 
  37975. you get from ctrl-f12) which takes input from, and outputs to, the 
  37976. serial port, which means I can run command line utilities without taking 
  37977. up desktop space, and even if someone else is using the computer for 
  37978. other tasks.
  37979. 8.9
  37980. Matthew Hunter, NCS
  37981. 8.9
  37982. Printing from text editors − Contrary to Matthew’s comments (Archive 8.8 
  37983. pp28/29), in my experience, Edit does print in response to <print> but 
  37984. Zap does not. Dragging the file-save icon to the printer icon does work 
  37985. with both packages. I will stick well clear of <shift-print>, however. 
  37986. Zap prints a black (NOT blank) page!
  37987. 8.9
  37988. There remains one problem, however, which is common to Edit and Zap. If 
  37989. the document contains a line of text which is too long to fit on one 
  37990. line, it is truncated! This did not happen before I upgraded to RISC OS 
  37991. 3 Laser Direct and Printers 1.22. Previously, Edit inserted a CR/LF to 
  37992. print the rest of the line (I did not have Zap then).
  37993. 8.9
  37994. Colin Singleton, Sheffield
  37995. 8.9
  37996. Risc PC Apps directory − As Keith Hodge has pointed out in his excellent 
  37997. Risc PC column, the correct place to add applications into ‘Apps’ on the 
  37998. iconbar is in !Boot.Choices.Boot.PreDeskTop, by adding lines such as:
  37999. 8.9
  38000. AddApp adfs::HardDisc4.$.Utilities.!ArcFS
  38001. 8.9
  38002. You may have noticed that the first line of this section reads:
  38003. 8.9
  38004. AddApp Boot:^.Apps.!*
  38005. 8.9
  38006. which displays any application, i.e. a directory whose filename begins 
  38007. with a ‘!’. This means that any normal directory whose filename does not 
  38008. begin with a ‘!’ will not be displayed inside Apps on the iconbar. So, 
  38009. if there are any applications there which you never use, you could place 
  38010. them in a directory (called ‘Not Needed’ say) and they will not be 
  38011. displayed, although they are still accessible through Apps on the hard 
  38012. disc.
  38013. 8.9
  38014. The converse of this is that lines such as that given above for adding 
  38015. applications into Apps need not, in fact, be placed in the file 
  38016. PreDesktop − they can be anywhere. Therefore, you can have a small Obey 
  38017. file which adds a selection of your favourite applications at any time. 
  38018. This saves cluttering up the Apps directory display with everything you 
  38019. might conceivably need until you actually need it, and it saves on 
  38020. memory and time taken to Boot the machine, as the !boot files of your 
  38021. chosen applications are not run, and their sprites are not loaded, until 
  38022. you choose to add them to Apps by using your Obey file.
  38023. 8.9
  38024. Matthew Hunter, NCS 
  38025. 8.9
  38026. Risc PC audio expansion − The audio header required by the audio mixer 
  38027. for the Cumana Indigo CD-ROM drive, and the identical Acorn and ESP 16-
  38028. bit sound upgrades, is link 14 which was not fitted on some early 
  38029. machines. The link is located at the top right corner of the motherboard 
  38030. if you are looking at the machine from the front. It is a row of five 
  38031. pins, with links connecting 1-2 and 2-4. Pin one is closest to the back 
  38032. of the machine. If this link is not fitted, get in contact with Granada 
  38033. who will replace your motherboard for one fitted with the correct 
  38034. connector. Currently, the Cumana and 16-bit upgrades are mutually 
  38035. exclusive, but ESP are working on an audio mixer to enable the 16-bit 
  38036. sound and CD sound from any CD-ROM drive to be combined.
  38037. 8.9
  38038. Matthew Hunter NCS
  38039. 8.9
  38040. Risc PC font size − There was a request in Archive 8.8 p38 regarding the 
  38041. font size for the outline font used in place of the system font. Full 
  38042. details are given on pages 220 and 221 of Volume 5 of the RISC OS 3 
  38043. PRM’s, but the following example Obey file will demonstrate the method. 
  38044. It should be placed in the PreDesk directory of the !Boot sequence.
  38045. 8.9
  38046. configure wimpfont 0
  38047. 8.9
  38048. set wimp$font Trinity.Medium.Italic
  38049. 8.9
  38050. set wimp$fontsize 192
  38051. 8.9
  38052. set wimp$fontwidth 160
  38053. 8.9
  38054. The last two lines allow you to alter the height and width of the font, 
  38055. as desired.
  38056. 8.9
  38057. It will only have an effect on text which an application regards as 
  38058. system text − an application which uses its own fonts in icons will not 
  38059. be affected.
  38060. 8.9
  38061. David Springle, Cheshire
  38062. 8.9
  38063. Window behaviour − I found that, when two windows containing a word 
  38064. processor are open, it is possible to scroll one window and 
  38065. simultaneously type into the other window. Further investigation has 
  38066. shown that it is possible to do this with Zap (v. 1.20), Edit (v. 1.50), 
  38067. Desk Edit (v. 3.00) and Publisher (v. 4.01). These are the only ‘word 
  38068. processors’ (for want of a better collective name) I have access to. It 
  38069. is also possible to mix the WPs in the windows, e.g. the scrolling 
  38070. window could contain a Publisher document and the typing window could 
  38071. contain a Zap page. This only breaks down with Edit as the scrolling 
  38072. window. When the Edit window is scrolled, this becomes the active window 
  38073. and typing is not possible in the other window. (Why? Can it be 
  38074. changed?).
  38075. 8.9
  38076. Dave Livsey, Devon
  38077. 8.9
  38078. Window behaviour II − Usually, if you have clicked on a window titlebar 
  38079. (using select), to move it, or bring it to the front of the window 
  38080. stack, processing will continue in the background − this can be seen by 
  38081. having !Alarm counting seconds on the iconbar. If the window you are 
  38082. using has a pane attached, however, you will find that the processing 
  38083. stops. This is because clicking on the titlebar brings the window to the 
  38084. front of the window stack, and the application then brings the pane to 
  38085. the front. The window holding the pane is then no longer at the front, 
  38086. and the WIMP tries to bring it to the front again, and so on. Using 
  38087. <adjust> does not have the same effect, since it does not try to alter 
  38088. the order of the windows.
  38089. 8.9
  38090. Matthew Hunter, NCS
  38091. 8.9
  38092. Hints & Tips
  38093. 8.9
  38094. Exporting text − When exporting text from HolyBible into Impression, I 
  38095. suggest that you use an intermediate ‘template’ document. There are two 
  38096. reasons for this. First of all, you may not like the style definitions 
  38097. that ExpLAN have provided. So, in this dummy document, you can edit the 
  38098. definitions to taste. Then, as you export the DDF text into that 
  38099. document, it will take on your own style definitions. The second reason 
  38100. is that when you export some DDF text, it brings with it thirteen style 
  38101. definitions. When I want to quote a single verse in the God-slot, I 
  38102. don’t want the Archive magazine style-sheet clogged up with all of those 
  38103. styles, so I drop the DDF text into the dummy document. I then mark the 
  38104. text <ctrl-A>, copy it and paste it into the God-slot. That way, it only 
  38105. brings with it the styles it actually uses.
  38106. 8.9
  38107. HolyBible problem − Has HolyBible hung up on you? It has stiffed my 
  38108. machine twice now and both times it occurred when I was marking some 
  38109. text ready for export. Now I know that this isn’t a statistically 
  38110. significant sample(!) but I wonder if anyone else has had similar 
  38111. problems? I was working on a 10Mb Risc PC and (I think) the only other 
  38112. applications I had running at the time were Impression, Edit and 
  38113. Keystroke. If you get hang-ups too, please report them to Gabriel, 
  38114. giving as much detail as possible: what machine? memory configuration? 
  38115. other applications running? what you were doing at the time? etc.
  38116. 8.9
  38117. Paul Beverley, NCS u 
  38118. 8.9
  38119.  
  38120. Hints and Tips
  38121. 8.10
  38122. Debugging via the Serial Port − (Unfortunately, we had problems 
  38123. importing the text into Impression when we put this hint in last month’s 
  38124. magazine. Sorry for any confusion that we caused − it was our fault and 
  38125. not John West’s! The correct version is as follows...)
  38126. 8.10
  38127. The os_cli line makes use of the system redirection to send the text to 
  38128. the serial port, and so it should have read:
  38129. 8.10
  38130. os_cli(“echo Start of initialise() 
  38131. 8.10
  38132. {serial: }”);
  38133. 8.10
  38134. More details of redirection can be found on page 419 of the RISC OS 3 
  38135. User Guide. The new Acorn C/C++ does not support os_cli, so you should 
  38136. use _kernel_oscli instead.
  38137. 8.10
  38138. From Basic, the OSCLI command is the direct equivalent.
  38139. 8.10
  38140. OSCLI “echo Start of PROC_init
  38141. 8.10
  38142.  {serial: }”
  38143. 8.10
  38144. John West, Surrey
  38145. 8.10
  38146. Disc protection − Of the 100+ readers’ floppy discs I’ve processed over 
  38147. the last few months, there was a fair smattering of broken cases, 
  38148. mangled sliders and disc errors. In every case, the defective discs had 
  38149. been sent in paper envelopes without further protection from the rough 
  38150. and tumble of Her Majesty’s mails. This prompts me to repeat Ed’s 
  38151. recommendation of many moons ago that it is well worthwhile giving your 
  38152. discs adequate protection in the post. Jiffy bags or board-backed 
  38153. envelopes cost only a few pence from stationers and, provided any 
  38154. covering documentation is limited to a couple of pages, you are unlikely 
  38155. to exceed the 60g limit for 19p/25p postage.
  38156. 8.10
  38157. Jim Nottingham, Pocklington
  38158. 8.10
  38159. Impression borders − The built-in borders in Impression provide ¼ point, 
  38160. 1 point and 4 point thick black borders (numbers 1, 2 & 3), but how do 
  38161. you get a 5 point border? There is no way for the user to specify the 
  38162. thickness and, also, the lines don’t join properly at the corners, as 
  38163. you can see...
  38164. 8.10
  38165. Here is a simple way to make your own line borders using Draw:
  38166. 8.10
  38167. Create a new Draw document and set the zoom to 8:1. Show the grid and 
  38168. lock to it. Set the grid spacing to 0.125 inches with 9 subdivisions − 
  38169. since one point equals 1/72 inch, each subdivision is one point. For a 5 
  38170. point line make a rectangle 5 squares wide and about 30 squares deep. To 
  38171. make the corners square, you need to make a 5 by 5 square immediately 
  38172. above the rectangle.
  38173. 8.10
  38174. Finally, set the fill colour of both to black and the line colour to 
  38175. none and save the file in your border directory.
  38176. 8.10
  38177. You can also make curved or bevelled joins by changing the corner square 
  38178. into a sector or a triangle.
  38179. 8.10
  38180. To get half point thicknesses, you need to set the number of 
  38181. subdivisions to 18.
  38182. 8.10
  38183. Unfortunately, the 8:1 maximum zoom in Draw is too small to do quarter 
  38184. point lines directly, so you need to construct them double size and then 
  38185. “magnify” them by 0.5, or else use Artworks with a 4000% magnification. 
  38186. On the monthly disc is a selection of plain rectangular borders from ¼ 
  38187. point to 6 point thickness.
  38188. 8.10
  38189. The only remaining problem is that Impression puts the borders around 
  38190. the outside of the frame so, with thick borders, you can’t use the “snap 
  38191. to frames” feature to get your alignment right when the frames have 
  38192. different borders, as you can see from the frame opposite.
  38193. 8.10
  38194. Cain Hunt, Cambridge
  38195. 8.10
  38196. Mouseballs − Logitech mice sometimes begin to slip when a glassy film of 
  38197. material builds up around the periphery of the rollers which contact the 
  38198. mouse ball. This can be as little as 0.5mm wide but is very tenacious. 
  38199. Using a piece of metal or wood to dislodge the material can easily 
  38200. damage the rollers. With a bit of patience it can be softened using 
  38201. isopropyl alcohol on a cotton bud. Lint free cloth is even better. This 
  38202. takes a few minutes of gentle rubbing to do the trick. One of the 
  38203. rollers is spring loaded and is a little more difficult. A clean cotton 
  38204. bud holding a little IPA can be used to rub around the mouse ball to 
  38205. remove the stickiness. If an Archive type mat is used, a gentle wash 
  38206. with warm water and detergent will delay the problem recurring. 
  38207. Everything has to be completely dry before reassembly.
  38208. 8.10
  38209. Les May, Rochdale u 
  38210.  
  38211. 8.11
  38212. LaserDirect double flush − I asked for help last month (8.10
  38213. p25) with what to do when I get a paper jam on my LaserDirect LBP8.
  38214. (This turns out to be one of those everybody-knows-about-it-except-me
  38215. problems.) Apparently, all I have to do is click on the LaserDirect icon
  38216. on the iconbar while holding <alt> down. This brings up a LaserDirect
  38217. Status window telling me the paper is jammed and offering me a way of
  38218. escape which I accept gratefully.
  38219. 8.11
  38220. Many thanks to all those who wrote or phoned to tell me what a
  38221. gumby I am. I had been using the ‘Flush printer’ menu option from the
  38222. ‘Printer Queue’ window (adjust-click on the iconbar icon) instead of
  38223. LaserDirect’s own flush system − you stupid boy!
  38224. 8.11
  38225. (Mind you, from some of the suggestions people made, like “hit
  38226. <f12><return>”, I suspect that I may not be the only person to have had
  38227. this problem and not realised how simple the solution was!)
  38228. 8.11
  38229. Ed.
  38230. 8.11
  38231. Printing from Basic programs (e.g. 8.10 pp21/47) − Here are a
  38232. couple of short points which may help. Firstly, ‘Page printing’ via a
  38233. printer driver.
  38234. 8.11
  38235. The key SYS calls recommended for ‘proper’ printing via the
  38236. desktop still work in non-Wimp mode, so it is fairly straightforward to
  38237. produce hard copy of text output directly from Basic programs − albeit
  38238. in ‘graphic/page printing’ style. 
  38239. 8.11
  38240. A sequence which certainly works is:- 
  38241.  DEF PROCprint
  38242.  SYS “PDriver_PageSize” TO width%, 
  38243.  height%,left%,bottom%,
  38244.  right%,top%
  38245.  pf%=OPENOUT(“printer:”)
  38246.  SYS “PDriver_SelectJob”,pf%,
  38247.  “Printer Test”
  38248.  LOCAL ERROR
  38249.  ON ERROR LOCAL:SYS “PDriver_AbortJob”,pf%:CLOSE#pf%
  38250.  :
  38251.  ENDPROC
  38252.  rect%!0=0
  38253.  rect%!4=0
  38254.  rect%!8=(right%-left%)/400
  38255.  rect%!12=(top%-bottom%)/400
  38256.  trans%!0=1<<16
  38257.  trans%!4=0
  38258.  trans%!8=0
  38259.  trans%!12=1<<16
  38260.  plotat%!0=left%
  38261.  plotat%!4=bottom%
  38262.  SYS “PDriver_GiveRectangle”,0,rect% 
  38263.  ,trans%,plotat%,&FFFFFF00
  38264.  SYS “PDriver_DrawPage”,1,block%,0,0 TO more%
  38265.  WHILE more%
  38266.    SYS “ColourTrans_SetGCOL”,0
  38267.    MOVE 0,(top%-bottom%)/400
  38268.    ............
  38269.    (BASIC print commands − see text)
  38270.    ............
  38271.    SYS “PDriver_GetRectangle”,,block% TO more%
  38272.  ENDWHILE
  38273.  SYS “PDriver_EndJob”,pf%
  38274.  RESTORE ERROR
  38275.  CLOSE# pf%
  38276.  ENDPROC
  38277. 8.11
  38278. The above assumes that you have a global error call in
  38279. operation, and you will need to add to the ON ERROR LOCAL line to
  38280. restore to that call. Also, you need to have declared certain variables
  38281. earlier in the program, such as...
  38282. 8.11
  38283. DIM rect% 16
  38284.  DIM trans% 16
  38285.  DIM plotat% 8
  38286.  DIM block% 16
  38287. 8.11
  38288. All the normal Basic printing commands seem to work OK, i.e.
  38289. PRINT, PRINT TAB(), VDU8, 9, 10 and 11, but be careful of VDU28 and 31
  38290. (and, of course, VDU1). 
  38291. 8.11
  38292. With care, you can therefore merely insert (at Basic’s print
  38293. commands above) the call to whatever routine puts your required text
  38294. onto the screen. 
  38295. 8.11
  38296. Secondly, what about using of text files? Although it isn’t
  38297. printing directly from Basic, there are some advantages in using text
  38298. files, as others have noted − not least being that your printer driver
  38299. is likely to use ‘character printing’, and you can view and edit via
  38300. Edit, if you want. 
  38301. 8.11
  38302. Extending the thoughts offered by others (and assuming you want
  38303. to get a hard copy of something you’ve put on the screen) then the
  38304. following PROCs can be used to put text line by line on the screen in
  38305. the way you want it and, at the same time, construct a corresponding
  38306. text file for subsequent dragging to your Printer Driver or into !Edit. 
  38307. 8.11
  38308.  10 MODE27 
  38309.  20 file%=OPENOUT(“textfile”)
  38310.  30 CLOSE#file%
  38311.  32 *SetType textfile Text
  38312.  40 PROCfile_and_centreprint(“Text File Test”)
  38313.  50 PROCfile_and_blankline
  38314.  60 PROCfile_and_printtab(10,“First Line at TAB 10”,TRUE)
  38315.  70 PROCfile_and_printtab(10,“Second Line at TAB 10, but held ”,FALSE)
  38316.  80 PROCfile_and_printtab(50,“to await this at TAB 50”,TRUE)
  38317.  90 END
  38318.  10000 
  38319.  10010 DEF PROCtextfile(textline$, return%)
  38320.  10020 REM return% is TRUE/FALSE flag
  38321.  10030 REM to tell BPUT# to make 
  38322.  <RETURN> action after text or not
  38323.  10040 file%=OPENUP(“textfile”)
  38324.  10050 
  38325.  10060 REM Put pointer to end of file ready for more text.
  38326.  10070 PTR#file%=EXT#file%
  38327.  10080 
  38328.  10090 IF return% THEN
  38329.  10100  BPUT#file%,textline$
  38330.  10110 ELSE
  38331.  10120  BPUT#file%,textline$;
  38332.  10130 ENDIF 
  38333.  10140 CLOSE#file%
  38334.  10150 ENDPROC
  38335.  10160 
  38336.  10190 DEF PROCfile_and_centreprint
  38337.  (string$)
  38338.  10200 REM Prints a string centred on screen,
  38339.  10210 REM and puts a corresponding string into a text file.
  38340.  10220 
  38341.  10230 LOCAL tab%,screenwidth%
  38342.  10240 REM First find screenwidth in Mode being used,
  38343.  10250 SYS “OS_ReadModeVariable”,-1,1 TO ,,screenwidth%
  38344.  10260 
  38345.  10270 tab%=((screenwidth%+1)-LEN(string$)) DIV 2
  38346.  10280 PRINT TAB(tab%)string$:REM To screen
  38347.  10290 
  38348.  10300 line$=STRING$(tab%,“ ”)+string$
  38349.  10310 PROCtextfile(line$,TRUE):REM Corresponding string to text file
  38350.  10320 ENDPROC
  38351.  10330 
  38352.  10360 DEF PROCfile_and_blankline
  38353.  10370 REM Prints an empty line on screen,
  38354.  10380 REM and puts a corresponding string into a text file.
  38355.  10400 PRINT:REM To screen
  38356.  10420 line$=“”
  38357.  10430 PROCtextfile(line$,TRUE):REM Corresponding string to text file
  38358.  10440 ENDPROC
  38359.  10450 
  38360.  10480 DEF PROCfile_and_printtab(tab%,string$,crlf%)
  38361.  10490 REM Prints a string on screen at the designated tab position,
  38362.  10500 REM and returns a corresponding string for a text file.
  38363.  10510 REM ‘crlf%’ is TRUE/FALSE flag to determine if screen printing
  38364.  10520 REM** is to end with <Return> or not (i.e. semi-colon or not).
  38365.  10530 
  38366.  10540 gap%=tab%-POS
  38367.  10550 REM ‘gap%’ needs to be calculated before printing to screen.
  38368.  10560 
  38369.  10570 IF crlf% THEN
  38370.  10580  PRINT TAB(tab%)string$
  38371.  10590 ELSE
  38372.  10600  PRINT TAB(tab%)string$;
  38373.  10610 ENDIF
  38374.  10620 
  38375.  10630 line$=STRING$(gap%,“ ”)+string$
  38376.  10640 PROCtextfile(line$,crlf%):REM Corresponding string to text file
  38377.  10650 ENDPROC
  38378. 8.11
  38379. I am still trying to get ‘character printing’ via a Printer
  38380. Driver direct from Basic!
  38381. 8.11
  38382. (We have one that we have used at NCS for years. I’ll put it on
  38383. the monthly disc. Is that what you want? Ed.)
  38384. 8.11
  38385. Ray Favre, West Drayton
  38386. 8.11
  38387. Runny letters − Some people don’t realise that the ink used by
  38388. inkjet printers is water-based and is therefore not waterproof. This
  38389. isn’t normally a problem but it can become one when addressing
  38390. envelopes! In rainy weather, my postman often delivers letters where the
  38391. address is all but illegible, and if the ink had run in this way before
  38392. it had reached my local sorting office, I would probably never have
  38393. received it.
  38394. 8.11
  38395. The solution is very simple. Most stationers sell a ‘fixer’ for
  38396. use with rub down lettering (Letraset etc.). This is actually a very
  38397. fine, clear, varnish in aerosol form. It’s quite expensive, around £3,
  38398. but a can will last many years. Just lightly spray it on the address or
  38399. label (it dries in a few seconds) and your letter will arrive safely
  38400. even in a monsoon.
  38401. 8.11
  38402. David Holden, APDL
  38403. 8.11
  38404. Transferring text files using Hermes − There is an increasing
  38405. interest these days in exchanging text files between Acorn RISC
  38406. computers and PCs. There are two major differences − PC text files end
  38407. with a ctrl-Z (ASCII 26) character and have CR LF (ASCII 13 + ASCII 10)
  38408. characters at the end of each line. Acorn text files have only an LF
  38409. character at the end of a line and have no special end character. Hermes
  38410. (v1.22 onwards) is able to handle most of the conversion in either
  38411. direction.
  38412. 8.11
  38413. To convert an Acorn file to PC, open the Hermes application
  38414. window and display the Pipe parameters. Change the Line End to CRLF and
  38415. click on “OK”. Drag the text file to Edit, use <ctrl-down> to move the
  38416. cursor to the end of the file and add ¤CTRLZ¤, then resave. Ensuring
  38417. that no application has the input caret, drag the text file onto the
  38418. Hermes iconbar icon. After a few moments, the converted file will be
  38419. piped to Edit where it can be saved to the DOS disc.
  38420. 8.11
  38421. To convert a PC file to Acorn, change the DOS file to Text
  38422. (&FFF) and open an Edit document, making sure it has the input focus.
  38423. Drag the DOS file onto the Hermes iconbar icon and the converted file
  38424. will be sent direct to the edit document with all the CR characters
  38425. stripped out. The ctrl-Z character at the end can be deleted manually.
  38426. 8.11
  38427. Hermes raison d’etre is to facilitate transfer between packages
  38428. and this cross-platform interchange is an extension of that philosophy.
  38429. 8.11
  38430. Mike Logan, Base 5 Technical Graphics
  38431. 8.11
  38432. Underlining Impression’s bugs − If you are editing a style, and
  38433. adding ‘Underlines 2’ to it in Publisher (4.05), make sure that any
  38434. existing text in that style does not have underlines set as an effect.
  38435. If the effect is set, strange things happen, and the window goes black!
  38436. 8.11
  38437. Brian Cocksedge, Midhurst, W Sussex u 
  38438. 8.11
  38439. Hints and Tips
  38440. 8.12
  38441. ‘Bad compression field’ − We have had a number of comments on the 
  38442. subject of the Bad compression field error produced by Laser Direct and 
  38443. the TurboDrivers, so many thanks to everyone who wrote in − too many to 
  38444. mention you all.
  38445. 8.12
  38446. The main causes seem to be either a lack of memory, or a lack of disc 
  38447. space. The usual memory saving techniques apply, quitting unused 
  38448. applications, reducing the screen resolution or number of colours and so 
  38449. on. Lack of disc space is most frequent on floppy-only machines for 
  38450. obvious reasons. During printing, a file is placed in the !Scrap 
  38451. directory, so to ensure that you have as much space as possible, create 
  38452. a scrap disc (preferably 1.6Mb if your computer will support it), 
  38453. containing only the !Scrap application, and make sure that you double 
  38454. click on that version before attempting to print. This will require 
  38455. additional disc swapping, but should allow printing to continue 
  38456. successfully.
  38457. 8.12
  38458. NCS.
  38459. 8.12
  38460. Booting problems − When exchanging the 80Mb hard drives in our two 
  38461. A5000s for 430Mb drives, I reset the machine to auto boot, and had the 
  38462. desktop auto boot option set, but do you think it would boot? The 
  38463. solution was to issue a *OPT 4,2 command, from which point everything 
  38464. behaved as anticipated. There were no discernible differences on 
  38465. *STATUS.
  38466. 8.12
  38467. This is a known bug in RISC OS 3. When you tick the auto boot option, 
  38468. this should be set, but unfortunately it is not. The reason it makes no 
  38469. difference to the status is that it is not a configuration option, but, 
  38470. in fact, it writes the option to the disc. (If you do a *CAT then the 
  38471. top line should read something like  Dir. SCSI:: Words.$ Option 00 
  38472. (Off); the option given will be the second number in the *OPT command.) 
  38473. MH.
  38474. 8.12
  38475. Alan Jackson, Oamaru, NZ.
  38476. 8.12
  38477. ‘Formatting’ hard discs − This has been covered several times in the 
  38478. past but, unfortunately, we have had a number of people recently who 
  38479. have experienced difficulty in preparing hard discs for use. While we 
  38480. cannot provide a step-by-step description, since all the controller 
  38481. cards are supplied with different software, many of the operations which 
  38482. need to be completed are similar.
  38483. 8.12
  38484. Remember that, for your particular system, you will need to read the 
  38485. manual supplied with your hard disc controller card, or the HFORM 
  38486. section of the manual if you are using a native drive (for example an 
  38487. IDE drive on the Risc PC).
  38488. 8.12
  38489. The most important point is that you MUST NOT actually format the drive. 
  38490. If you do, you are more likely to damage the drive than make it usable! 
  38491. All modern drives have the low level formatting laid down during the 
  38492. manufacturing process, and trying to reformat the drive is likely to 
  38493. damage the original formatting, but not completely replace it, rendering 
  38494. the drive unusable.
  38495. 8.12
  38496. Instead you need to initialise the drive. The precise wording will 
  38497. depend on your controller card − Morley SCSI and HForm give you an 
  38498. option to “Format or just Initialise the drive”, and the Cumana SCSI 2 
  38499. card requires that you set up ‘partitions’ on the drive. The 
  38500. initialisation process involves writing out RISC OS information about 
  38501. the position of files on the drives, contents of the root directory and 
  38502. so on, but does not do the potentially dangerous low level formatting.
  38503. 8.12
  38504. NCS.
  38505. 8.12
  38506. Quicksort − An error crept into Colin Singleton’s Programming Workshop 
  38507. last month − at some point, the Basic program detokenised incorrectly. 
  38508. All the ASC commands should be replaced with a minus sign to make the 
  38509. program work. Thank you to all those who rang or wrote to point out the 
  38510. error.
  38511. 8.12
  38512. NCS.
  38513. 8.12
  38514. Screenbanks − Following on from Matthew Hunter’s Programming Workshop 
  38515. article on screen banking (Archive 8.8 p69), errors may not be displayed 
  38516. because the error is written to the screen bank being updated, and not 
  38517. the screen bank being viewed. By using the following procedure, you can 
  38518. link both screens back together.
  38519. 8.12
  38520. DEF PROCresetscreens
  38521. 8.12
  38522. SYS 6,113,SB_bank%
  38523. 8.12
  38524. SYS 6,112,SB_bank%
  38525. 8.12
  38526. ENDPROC
  38527. 8.12
  38528. The procedure could be called via the ON ERROR mechanism, or at the end 
  38529. of the program.
  38530. 8.12
  38531. Peter Prewett, Stirling, South Australia.
  38532. 8.12
  38533. Snippet − Snippet is still a useful utility for screen grabs etc, but 
  38534. refused to perform with my Risc PC. I queried 4Mation and obtained the 
  38535. latest upgrade (in very short order and at no cost, which prompts me to 
  38536. raise my hat to them), but still found the same problem of freezing the 
  38537. machine when I tried to save a screen. The solution to this seems to be 
  38538. to select a screen mode of no more than 256 colours, upon which, Snippet 
  38539. behaves like the old friend it has always been.
  38540. 8.12
  38541. Alan Jackson, Oamaru NZ.
  38542. 8.12
  38543. Upgrading Video RAM − When upgrading the VRAM in your Risc PC from 1 to 
  38544. 2Mb, it is necessary to remove the 1Mb board and return it to be 
  38545. upgraded. You should make sure that you reconfigure your computer to use 
  38546. a screen resolution/number of colours which is possible even with no 
  38547. VRAM, before removing the 1Mb board. If you do not do this, you will 
  38548. find that you will need to reconfigure the computer ‘blind’, as the high 
  38549. resolution modes are not available if there is no VRAM present, and no 
  38550. picture will be displayed.
  38551. 8.12
  38552. Fred Williams, Staffordshire.
  38553. 8.12
  38554. Wimp bug (RISC OS 3.10) − If you are a Wimp programmer and have 
  38555. experienced apparently inexplicable ‘Abort on data transfer’ and 
  38556. ‘Address exception’ errors ‘at’ addresses in the Window Manager module, 
  38557. especially just after your program has quit, you may be interested (or, 
  38558. like me, relieved!) to know that the problem may lie in a bug in the 
  38559. Wimp.
  38560. 8.12
  38561. According to a letter from Acorn, “there was a bug with ‘slabbed’ icons 
  38562. (those with the R option in the validation flags). If you click on a 
  38563. slabbed icon, and the program deletes the window it is on, or quits 
  38564. before the wimp has a chance to redraw it, problems can arise.”
  38565. 8.12
  38566. Hugh Eagle, Horsham.
  38567. 8.12
  38568. Windows on the Risc PC − I would like to warn CD-ROM users that, due to 
  38569. the fixed palette on the PC card, many CD programs will not work 
  38570. properly − giving psychedelic colours which can lock up the computer. We 
  38571. have found by pressing <f1> (in Windows) that the Windows help will be 
  38572. opened, from which you can return to Windows. This prevents having to 
  38573. reset the computer. Acorn/Aleph One are working on a fix for this 
  38574. problem.
  38575. 8.12
  38576. Peter Hughes, Desktop Laminations.
  38577.